使用括號:
if (personPlay.equals(computerPlay)) {
System.out.println("It's a tie!");
} else if (personPlay.equals("R")) {
if (computerPlay.equals("S"))
System.out.println("Rock crushes scissors. You win!!");
} else if (personPlay.equals("P")) {
if (computerPlay.equals("R"))
System.out.println("Paper wraps around rock. You win!");
} else if (personPlay.equals("S")) {
if (computerPlay.equals("P"))
System.out.println("Scissors cut paper. You win!");
} else {
System.out.println("you lose");
}
正如評論所說,該代碼仍然不能工作,因爲邏輯是有缺陷的。您應該在每個內部if
else子句,其中應打印「你輸」:
if (personPlay.equals(computerPlay)) {
System.out.println("It's a tie!");
} else if (personPlay.equals("R")) {
if (computerPlay.equals("S"))
System.out.println("Rock crushes scissors. You win!!");
else
System.out.println("you lose");
} else if (personPlay.equals("P")) {
if (computerPlay.equals("R"))
System.out.println("Paper wraps around rock. You win!");
else
System.out.println("you lose");
} else if (personPlay.equals("S")) {
if (computerPlay.equals("P"))
System.out.println("Scissors cut paper. You win!");
else
System.out.println("you lose");
} else {
System.out.println("invalid input");
}
或者你也可以消除內部if
S和使用&&
代替:
if (personPlay.equals(computerPlay)) {
System.out.println("It's a tie!");
} else if (personPlay.equals("R") && computerPlay.equals("S")) {
System.out.println("Rock crushes scissors. You win!!");
} else if (personPlay.equals("P") && computerPlay.equals("R")) {
System.out.println("Paper wraps around rock. You win!");
} else if (personPlay.equals("S") && computerPlay.equals("P")) {
System.out.println("Scissors cut paper. You win!");
} else {
System.out.println("you lose");
}
使用括號'{}',你會發現錯誤在哪裏。 – 2014-09-10 15:53:25
這是因爲第二個如果現在正在檢查第一個其他的嵌套if如果。同第三者一樣,如果第二個等等,你需要添加一些括號 – Chronicle 2014-09-10 15:53:37
看看[這個主題](http://stackoverflow.com/questions/8020228/is-it-ok-if-i-omit-curly -braces-在-java的)。 – 2014-09-10 15:56:17