如何停止java循环

如何停止java循环,java,arrays,2d,do-while,Java,Arrays,2d,Do While,我需要检查2d数组是否已满,以及它是否是拉丁方。我有两种方法来检查这两种情况,但当我将检查放入do while循环时,它不会检查。如果棋盘已满,我希望游戏停止,然后继续检查棋盘是否为拉丁方。我将其设置为在数组中检查空元素的位置。这是全板检查的代码 public static boolean fullBoard(char [][] square){ for(int i = 0; i < square.length; i++){ for(int j = 0; j <

我需要检查2d数组是否已满,以及它是否是拉丁方。我有两种方法来检查这两种情况,但当我将检查放入do while循环时,它不会检查。如果棋盘已满,我希望游戏停止,然后继续检查棋盘是否为拉丁方。我将其设置为在数组中检查空元素的位置。这是全板检查的代码

public static boolean fullBoard(char [][] square){
    for(int i = 0; i < square.length; i++){
        for(int j = 0; j < square.length; j++){
            if(square[i][j] == 0) { 
                return false;
            }
        }
    }
    return true;
}

好的,我不确定能理解所有的事情,但我会尽力帮助你

当我看着你做的时候,我可以看到

if(fullBoard(square)) { 
            isLatinSquare(square);
没用。方法isLatinSquare返回bool。你甚至不用它的返回值

如果您希望游戏在游戏已满且恐惧为拉丁语之前结束:

do {
        promptUser(square);
        printBoard(square);


    }
while(isLatinSquare(square) && fullBoard(square));

System.out.println("you win");
printBoard(square);
}

如果您想在游戏已满时暂时停止游戏:

do {
        promptUser(square);
        printBoard(square);

        if(fullBoard(square)) { 
            Thread.sleep(2000); //2 sec pause
        }
    }
while(isLatinSquare(square));

System.out.println("you win");
printBoard(square);

你能这样试试吗

do {
    promptUser(square);
    printBoard(square);

}while(!fullBoard(square));

if(isLatinSquare(square)) {
    System.out.println("you win");
}
else {
    System.out.println("you lose");
}
printBoard(square);

好的,所以我认为问题不在于do while循环,而在于全板检查。我运行了这个do-while循环,但检查不起作用。在第一次用户输入后,它将打印您赢了。当没有更多的空元素时,它应该检查。确定。我觉得你的全板检查环很完美。如果正方形对象中有空字符,它将返回false。但是它的使用方式是do-while,即使您删除了该代码,也不会有什么不同,它是无用的。你能投票表决我的评论和回答吗?我需要10个信誉点,这样我就可以用图片来回答:)你知道我如何在Do-while循环中进行此检查吗?如果fullBoard的目标是检查其中是否有空字符,我不明白你为什么说它不起作用,它会起作用。因为您的案例是特定的,很难比这更好地帮助您,我建议您学习调试,这样您就可以自己看到问题了!我知道它可以工作,但它只在初始化的数组上工作。当我尝试使用它检查用户填充数组后,它就不起作用了。它试图在只填写了一个索引后打印一条获胜消息。我试图找出是否有其他方法可以在用户填充阵列时检查电路板是否已满。发布
isLatinSquare
的实现。另外,请解释你所说的“它不检查”是什么意思。
do {
    promptUser(square);
    printBoard(square);

}while(!fullBoard(square));

if(isLatinSquare(square)) {
    System.out.println("you win");
}
else {
    System.out.println("you lose");
}
printBoard(square);