java - 使用 while 循环时无法接受用户输入

标签 java arrays loops input while-loop

<分区>

我有下面这段代码,它应该接受用户输入并将其存储在一个数组中,我只是想知道为什么它不允许我输入任何数字。

输入部分应该在if语句里面吗?另外,使其正常工作的最佳方法是什么?

import java.util.*;

public class fun_with_loops {

    static Scanner scan = new Scanner(System.in);

    public static void main (String[] args) throws java.io.IOException
    {
        int[] numbers = new int[10];
        int numberSize = 0;
        System.out.print("Enter a few numbers please\n");



        while (numbers.length < 10)
        {
            int input = scan.nextInt();
            if (input != 0)
            {
                numbers[numberSize] = input;
                numberSize++;
            }
            else
            {
                break;
            }

        }

    }  
}

最佳答案

问题

循环控制上的以下表达式始终被评估为 false:

while (numbers.length < 10)

因为数组的长度实际上等于声明时的 10。

解决方案

为了按预期编程工作,您必须使用 numberSize 变量作为控制:

while (numberSize < 10)

因为它根据输入的数量增长。

关于java - 使用 while 循环时无法接受用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33617714/

相关文章:

c++ - 如何修复我的代码并使其遍历二维数组中的所有行? (C++)

java - 添加新元素时,ArrayList 的所有元素都会更改吗?

json - 如何在 ngFor 中使用嵌套的 json 对象

java - HiveContext createDataFrame 不适用于 pySpark (jupyter)

java - Spring Security 4 @AuthenticationPrincipal 为空,带有 core.annotation.AuthenticationPrincipal 但不是 web.bind.annotation.AuthenticationPrincipal

java - 递归(完成)

javascript - 为什么我在这个循环中总是得到相同的输出?

java - 如何在 OpenShift 或 Git 上部署 Java Web 应用程序?

java - Spring boot with testcontainers - 如何防止上下文重新加载时数据库初始化

javascript - 循环多维 UL 生成 javascript 数组