java - Java 中 false boolean 值后重新启动 While 循环

标签 java if-statement for-loop while-loop boolean-expression

我正在为学校做一项作业,要求我们找到十个数字中最大的一个。数字在 0-9 之间。我相信我已经记下了那部分。我的问题是我正在尝试添加作业不需要的额外功能。我试图在 boolean 语句为 false 并给出错误消息后让循环完全重新启动。在我输入无效值后,它会给出错误消息,但在我按“确定”后,它会继续到下一个数字。我希望它从循环的开头开始。

代码如下:

package Largest;

import java.util.Scanner;
import javax.swing.JOptionPane;

public class LargestMain {

    public static void main(String[] args) {

    int number = 0;
    String numStr = "";
    int []myArray = new int[10];
    int count = 1;
    int largest = 0;
    boolean valid = false;

    while(valid == true); {  // Loop to check validity  

        for(int i = 0; i < myArray.length; i++) {

            myArray[i] = i + 1;
            numStr = JOptionPane.showInputDialog("Please enter number " + count++ + ":");
            number = Integer.parseInt(numStr); // Converts string value to integer  

            if(number >= largest) {
                largest = number;
            }

            // If-Else if statements checks if values entered are equal to 0-9
            if(number >= 0 && number <= 9) {
                valid = true;
            }

            else if ((!(number >= 0 && number <= 9))) {
                valid = false;
            }   

            if (valid == false) {
                JOptionPane.showMessageDialog(null, "INVALID INPUT...Try Again!!!", "Results", JOptionPane.YES_OPTION);
                continue;
            }
        }

        JOptionPane.showMessageDialog(null, "The Largest Number Is: " + largest, "Results", JOptionPane.PLAIN_MESSAGE);
    }           
    }
}

我可以通过添加 return 来结束循环:

if (valid == false) {
    JOptionPane.showMessageDialog(null, "INVALID INPUT...Try Again!!!", "Results", JOptionPane.YES_OPTION);
    return;
}

我真的很想学习如何从头开始重新启动循环。我尝试搜索不同的主题,但没有一个可以帮助我解决我的问题。感谢您提前的帮助!

最佳答案

要重新启动循环,您可以使用 continue 关键字。 继续将跳到下一个循环迭代。

当使用 while 循环时,它只会重新启动循环,因为直到 valid 为 true 时循环才会结束。使用 for 循环时,它将跳到下一次迭代(因此,如果您当前位于索引 5 并使用 continue,它将移至索引 6,而不是停留在 5)。

对于嵌套循环,您可以标记循环以指定该语句适用于哪个循环:

firstloop:
while(valid) {

    secondloop:
    while(true) {
         continue firstloop;
    }
}

此外,在检查 boolean 值时不需要== true。可以表示为

while(valid) {

}

至于检查 false,valid == false,您可以使用

while(!valid) {

}

关于java - Java 中 false boolean 值后重新启动 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833123/

相关文章:

java - 没有这样的元素异常错误?

java - cron 表达式在指定时间运行作业?

java - 如何在Spring Security中实现基于JWT的认证和授权

mysql - 如何在 MySQL 查询中编写 IF ELSE 语句

c++ - 对于所有编译器,C++ 中的 If 语句中的各种条件是否总是具有相同的执行顺序?

javascript - 如何从嵌套函数中中断 JavaScript for 循环

Java制作一个单独的注释,结合了其他注释

java - 是否可以在不使用 if 语句的情况下找出哪个数字更大?

java - 如何循环类中的所有方法和对象? (java)

python - 非常奇妙的循环行为 : lists changes identity. 发生了什么?