java - 在 Java 中针对特定情况停止 for 循环中的增量

标签 java arrays loops for-loop increment

本质上,我正在尝试使用 for 循环将用户输入存储在多维数组中。如果用户输入了不期望/不需要的内容(例如小于 0),将显示一条警告消息,理想情况下循环应该“等待”直到它接收到下一个有效整数。

目前,我的代码(如下所示)工作正常,但我想知道是否有更好/更优化的方法来执行此操作。

for (int row = 0; row < array.length; row++) {
    for (int column = 0; column < array[row].length; column++) {
        int number = input.nextInt();
        if((input.nextInt() >= 0) {
            array[row][column] = number;
        } else {
            System.out.println("Input must be > 0.");
            column--;
        }
}

最佳答案

使用 do..while 循环等待用户输入有效内容。这比修改循环计数器更干净。

for (int row = 0; row < array.length; row++) {
        for (int column = 0; column < array[row].length; column++) {
            bool hasEnteredValidInput = false;
            do
            {
               int number = input.nextInt();
               if(number  >= 0) {
                  array[row][column] = number;
                  hasEnteredValidInput = true
               } else {
                  System.out.println("Input must be > 0.");
               }
            } while (!hasEnteredValidInput);
        }
    }

更好的方法是将读取代码提取到它自己的函数中:

for (int row = 0; row < array.length; row++) {
        for (int column = 0; column < array[row].length; column++) {
             array[row][column] = readValidInputFromUser();   
        }
 }

 public string readValidInputFromUser()
 {
    while(true)
    {
           int number = input.nextInt();
           if(number >= 0) {
              return number;
           } else {
              System.out.println("Input must be > 0.");
           }
    }
 }

这个版本非常清楚你在做什么。

关于java - 在 Java 中针对特定情况停止 for 循环中的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467911/

相关文章:

arrays - 在scala中添加2个字符

java - 如何在满足条件后从循环中跳出

c - 使用 while 循环发出 fgetc() c

r - 使用 glm 模型引导

java - Maven war - 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/] 构建 Maven war

java - 将 PipedWriter+PipedReader 对的写入器线程的错误委托(delegate)给读取器线程

java 。如何从两个列表中删除重复的对象

javascript - 使用另一个包含键的数组中的值过滤 json 响应

java - 如何从maven获取gif资源

python - 使用增量运算符时,numpy 数组之和在数据类型方面的不同行为