3

我对这个问题有疑问,有人可以帮忙吗?一个解释会很好,而不是回答它自己的答案。

编写一个语句,比较 score1 和 score2 的值并执行以下操作。当 score1 超过 score2 时,将“player1 wins”消息打印到标准输出。当 score2 超过 score1 时,将“player2 wins”消息打印到标准输出。在每种情况下,变量 player1Wins, , player1Losses , player2Wins 和 player2Losses, 都会在适当时递增。最后,如果出现平局,则打印消息“tie”并且变量 tieCount 递增。

    if(score1>score2)
     {
         System.out.println("player1 wins");
         player1Wins++;player2Losses++;
     }
    else if(score2>score1)
     {
         System.out.println("player2 wins");
         player2Wins++;player1Losses++;
     }
    else if(score1=score2)
     {
        System.out.println("tie");
        tieCount++;
     }
4

7 回答 7

8

一切都很好,除了最后一个else if。你不小心做了一个任务而不是比较。

else if(score1=score2)

上面的else-if语句应该是:-

else if(score1 == score2)

PS : - 事实上,你可以简单地删除最后一个 ,这将相当于这个 else if。因为您已经在前两种情况下考虑了其他可能性。else ifelse

所以,这也将做到这一点: -

else {
    System.out.println("tie");
    tieCount++;

}
于 2012-10-24T08:29:15.457 回答
3

在最后一个条件下执行分配else if而不是比较。改成:

else if (score1 == score2)
于 2012-10-24T08:29:06.357 回答
1

你有一个平等的问题,这可能会导致问题

else if(score1=score2) {
    System.out.println("tie");
    tieCount++;
}

应该

else if(score1==score2) {
    System.out.println("tie");
    tieCount++;
}

您的第一个将 score2 的值分配给 score1。它是最后一个 else ,即使有这个 bug 也可能会被调用,因为其他两个检查大于和小于。

除此之外,您的代码似乎做了它应该做的事情。

于 2012-10-24T08:29:51.540 回答
1

else if(score1 == score2)需要被完成。=运算符表示赋值,而表示==检查是否相等。

于 2012-10-24T08:30:11.180 回答
1

除了最后一个条件在语法上是错误的之外,它也是多余的。else if ...用just替换final ,else一切都会完美。

于 2012-10-24T08:31:18.700 回答
0
else if(score1=score2)

这种说法应该是

else if(score1 == score2)

但这实际上比较了参考文献

else if(score1.equals(score2))
于 2012-10-24T08:31:14.457 回答
0

我认为最后一条语句有你正在使用 = 符号而不是 == 符号使用的问题



if(score1==score2)

于 2012-10-24T08:31:14.903 回答