[英]Restart while loop if boolean == false
我試圖通過做數獨難題來提高Java的水平,但是我遇到了一些問題。 按照目前的情況,如果我在Sudoku中輸入任何“非法”輸入,它將繼續,但是我試圖讓腳本再次要求輸入一個值,如果它是“非法”。 如下面的代碼所示,這是當我的公共布爾“ 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;
}
您編寫代碼的方式將在s.move為true或false時打印Sudoku面板。 您可以通過在else語句中添加else語句來解決此問題。
例如:
if(s.moves(row, column, value) == false){
//print error message
}else {
s.printBoard();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.