我正在使用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。
添加回答
举报
0/150
提交
取消