为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

aluckdog 2021-05-10 17:18:43
我正在使用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());      }   }}
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

您不应在每次调用getCustomer时都创建一个新的Scanner。因此,由于getCustomer()获取客户列表,因此在循环外仅应调用一次。


您的getCustomer()方法应创建一个List而不是一个固定长度的数组,并应返回该列表。就像@neo所说的,只要用户输入空行,就退出输入循环。


然后,您在main()中的循环将遍历列表并打印客户。就像是


for ( Customer c : customers ) {

   System.out.println( c );

}

这也可以通过使用流的单个语句来完成。


当然,这假定Customer具有toString()覆盖,该toString()覆盖返回适当的String来标识Customer。


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信