Java 使用sentinel向阵列添加输入
我正在尝试向数组中添加double,当用户输入0时,循环应该停止。当输入0时,我不会让程序停止,它只是继续请求输入。我已经申报了扫描仪之类的东西。另外,当我可以让数组停止时,最后输入的值将打印到数组的所有元素Java 使用sentinel向阵列添加输入,java,arrays,loops,Java,Arrays,Loops,我正在尝试向数组中添加double,当用户输入0时,循环应该停止。当输入0时,我不会让程序停止,它只是继续请求输入。我已经申报了扫描仪之类的东西。另外,当我可以让数组停止时,最后输入的值将打印到数组的所有元素 System.out.println("Enter some numbers; 0 to quit"); //condition for our sentinel boolean done = false; while (!done){ //va
System.out.println("Enter some numbers; 0 to quit");
//condition for our sentinel
boolean done = false;
while (!done){
//value to be added into array
double value = in.nextInt();
//condition to end the while loop
if (value == 0){
break;
}
for (int i = 0; i < nums.length; i++){
nums[i] = in.nextDouble();
}
}
System.out.println(Arrays.toString(nums));
System.out.println(“输入一些数字;0退出”);
//我们哨兵的状况
布尔完成=假;
而(!完成){
//要添加到数组中的值
double value=in.nextInt();
//结束while循环的条件
如果(值==0){
打破
}
对于(int i=0;i
nums的大小是多少?您只检查每个“批处理”中输入的第一个值,如果该值不是0,则忽略该值。double value=in.nextInt()代码>这看起来很有趣。。。。。。。。。。。。我认为你应该特别重新考虑这一行。此外,除非您提示用户输入他们想要输入的数字数量(事实并非如此),否则在开始循环之前,您实际上不知道数组的大小。我建议您使用某种集合
。可能是使用Double
类的ArrayList
。该集合是可扩展的,这对于它们将输入的未知数量的double非常有用,但不能保存原语,因此需要使用包装类。nums的大小为100