Java 如果布尔值==false,则重新启动while循环

Java 如果布尔值==false,则重新启动while循环,java,while-loop,boolean,Java,While Loop,Boolean,我试图通过制作数独游戏来提高java的水平,但是我遇到了一些问题。就目前的情况而言,如果我在数独中输入任何“非法”的内容,它就会继续,但如果它是“非法”的,我会尝试让脚本再次请求一个值。如下面代码所示,当我的公共布尔“moves”为false时,我将再次尝试启动while循环 public static void main(String[] args) throws Exception { Sudoku s = new Sudoku("C:\\Users\\caspe\\Downloa

我试图通过制作数独游戏来提高java的水平,但是我遇到了一些问题。就目前的情况而言,如果我在数独中输入任何“非法”的内容,它就会继续,但如果它是“非法”的,我会尝试让脚本再次请求一个值。如下面代码所示,当我的公共布尔“moves”为false时,我将再次尝试启动while循环

public static void main(String[] args) throws Exception  {
    Sudoku s = new Sudoku("C:\\Users\\caspe\\Downloads\\Sudoku001.sdk");
    s.printBoard();
    s.errorCheck();
    s.getNum();

    while(getNum() > 0) {
        System.out.println("Next move, please (row , column , value )");
        Scanner scanner = new Scanner(System.in);
        int row = scanner.nextInt();
        int column = scanner.nextInt() ;
        int value = scanner.nextInt();
        if (s.moves(row, column, value) == false); {
            //Try again
        }

        s.printBoard();
    }
}
经过多次尝试,我仍然无法找到解决方案,因此非常感谢您的帮助

以下是我的getNum方法,以进一步了解:

public static int getNum() {
    int getNumb = 0;
    for(int j = 0; j < list.size(); j++) {
        for (int i=0; i < list.get(j).length(); i++) {
            if(list.get(i).charAt(j) == '.') {
                getNumb++;
            }
        }
    }
    return getNumb;
}
publicstaticintgetnum(){
int getNumb=0;
对于(int j=0;j
按照您编写代码的方式,无论s.move是真是假,它都将打印数独板。解决这个问题的方法是在if语句中添加else语句

例如:

if(s.moves(row, column, value) == false){
    //print error message
}else {
    s.printBoard();
}

按照你编写代码的方式,无论s.move是真是假,它都会打印数独板。解决这个问题的方法是在if语句中添加else语句

例如:

if(s.moves(row, column, value) == false){
    //print error message
}else {
    s.printBoard();
}

你能分享getNum方法吗?它做什么?您可以使用continue再次重做循环。如果我只使用continue,我的“printBoard”将无法访问。什么是
列表
变量?您在该列表中存储了什么类型的对象?您可以共享getNum方法吗?它做什么?您可以使用continue再次重做循环。如果我只使用continue,我的“printBoard”将无法访问。什么是
列表
变量?你在列表中存储了什么样的对象?我可以发誓我试过那种解决方案。。不过谢谢!我可以发誓我试过那种方法。。不过谢谢!