如何停止循环java

问题描述 投票:-1回答:2

我需要检查一个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;
}

这是do while的代码:

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

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

}
java arrays 2d do-while
2个回答
0
投票

好的,我不确定能理解一切,但我会尽力帮助。

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

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);

0
投票

你可以这样试试吗

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

}while(!fullBoard(square));

if(isLatinSquare(square)) {
    System.out.println("you win");
}
else {
    System.out.println("you lose");
}
printBoard(square);
© www.soinside.com 2019 - 2024. All rights reserved.