0

Imma java初心者なので、私は物事を学ぼうとしています。私はブール法を作成しました、それは小さなクラップスゲームです。このメソッドはmainメソッドから呼び出され、戻り値がtrue(ゲームに勝つ)の間はプレイを続ける必要がありますが、戻り値がfalseの場合は実行を停止します。プレイヤーが何回勝ったかも必要です。だから私はこのようなものを作成しました:

while(Craps.play())
{
  Craps.play();
  i++;
} 

System.out.println("In total you won " + i + " times");

iprivatestaticintとして初期化されますi = 0; //Game counter

しかし、出力は私が正しく見えませんでした。まず第一に、ゲームが失われた場合(戻り値がfalseの場合)、実行は停止されません。そして、それは正しい当選番号を数えません。たとえば、3つのゲームに勝った場合、彼が2つのゲームに勝ったかどうかを計算します。

このループに論理エラーはありますか?

ありがとう

4

1 に答える 1

1

Craps.play()検証を見逃してしまうため、ループ内で呼び出すべきではありません。また、元のコードでは、Craps.play()2回呼び出していますが、1回だけインクリメントしていますi。コードをこれに変更すると、期待どおりに機能するはずです。

 while(Craps.play()) {
     i++;
 }
于 2013-02-23T22:20:29.607 に答える