Java 使用sentinel向阵列添加输入

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

我正在尝试向数组中添加double,当用户输入0时,循环应该停止。当输入0时,我不会让程序停止,它只是继续请求输入。我已经申报了扫描仪之类的东西。另外,当我可以让数组停止时,最后输入的值将打印到数组的所有元素

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