gpt4 book ai didi

java - If 语句未处理 - Java

转载 作者:行者123 更新时间:2023-11-30 03:09:10 25 4
gpt4 key购买 nike

我正在写一个井字棋问题。

TicTacToe 类工作正常,但我的主类中的第一个 if 语句未处理。 TicTacToe 类并不是问题所在,因为当玩家 1 获胜时,oNew.checkWinner(1) 返回 true。 (我通过在 if 语句之前放置 System.out.println(oNew.checkWinner(1)); 进行检查)。

但是它不会传递到 if 语句来中断 while 循环,而是继续执行。它与第一个 else if 的作用相同。

奇怪的是,它对于第二个 if 语句和第二个 else if 语句运行得很好。

public static void main(String[] args) {

TicTacToe oNew = new TicTacToe();
String champ = "";
boolean hasWon = false;

oNew.getMove();
while(hasWon == false){
oNew.setMove(1);
oNew.getMove();
if (oNew.checkWinner(1) == true){
champ = "Player 1 wins.";
hasWon = true;
}
else if(oNew.checkCatsGame() == true){
champ = "Draw";
hasWon = true;
}
oNew.setMove(2);
oNew.getMove();
if (oNew.checkWinner(2) == true){
champ = "Player 2 wins.";
hasWon = true;
}
else if(oNew.checkCatsGame() == true){
champ = "Draw";
hasWon = true;
}
}
System.out.println(champ);

}

最佳答案

为了在其中一个条件为真时离开循环,请添加 breakcontinue (如果不这样做,则添加第一个 if- 后面的语句) else-if block 在当前循环迭代结束并再次检查循环条件之前执行):

if (oNew.checkWinner(1)){
champ = "Player 1 wins.";
hasWon = true;
continue;
}
else if(oNew.checkCatsGame()){
champ = "Draw";
hasWon = true;
continue;
}
  • 继续将结束当前迭代,一旦测试下一次迭代的条件,就会退出 while 循环。

  • 无论 hasWon 的值如何,break 都会终止循环。

关于java - If 语句未处理 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33995918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com