使用括号:
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