3

この質問に問題があります。誰か助けてもらえますか? 答えそのものではなく、説明がいいでしょう。

score1 と score2 の値を比較し、次のアクションを実行するステートメントを作成します。score1 が score2 を超えると、「player1 が勝った」というメッセージが標準出力に出力されます。score2 が score1 を超えると、「player2 が勝つ」というメッセージが標準出力に出力されます。いずれの場合も、変数 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 と同等です。最初の 2 つの条件で、他の可能性をすでに検討しているためです。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 ですが、他の 2 つは大なり小なりをチェックするため、このバグがあっても呼び出される可能性があります。

それとは別に、あなたのコードは本来あるべきことをしているようです。

于 2012-10-24T08:29:51.540 に答える
1

else if(score1 == score2)行われるべきです。=演算子は代入を意味し、演算子は等価==性のチェックを意味します。

于 2012-10-24T08:30:11.180 に答える
1

最後の条件が構文的に間違っていることを除けば、冗長でもあります。ファイナルelse if ...をジャストに置き換える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 に答える