我正在使用java并且在有空白输入的情况下想要终止循环时以某种方式具有无限输入

我正在使用java并以某种方式具有无限输入,当我想终止循环时,如果输入为空,这是我的代码:我希望有人可以解释我的错误


import java.util.Scanner;


public class Main1{


   /*int i=0;*/


   private static Customer[] getCustomer(){

      Scanner scanner = new Scanner(System.in);

      Customer[] customers = new Customer[100];


      int i=0;

      while((scanner.hasNextLine())){

          customers[i++] = new Customer(i,scanner.nextDouble());

      }


      /*int j;


      for(j=1;j<=i;j++){

          customers[j] = new Customer(j,sc.nextDouble());*/


      return customers;

  }


  public static void main(String[] args){


      int j;


      for(j=1;j < getCustomer().length;j++) {


          /*Customer[] customer = new Customer(getCustomer());*/


          System.out.println(getCustomer());

      }

   }

}


aluckdog
浏览 193回答 2
2回答

holdtom

您不应在每次调用getCustomer时都创建一个新的Scanner。因此,由于getCustomer()获取客户列表,因此在循环外仅应调用一次。您的getCustomer()方法应创建一个List而不是一个固定长度的数组,并应返回该列表。就像@neo所说的,只要用户输入空行,就退出输入循环。然后,您在main()中的循环将遍历列表并打印客户。就像是for ( Customer c : customers ) {&nbsp; &nbsp;System.out.println( c );}这也可以通过使用流的单个语句来完成。当然,这假定Customer具有toString()覆盖,该toString()覆盖返回适当的String来标识Customer。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java