2016-11-22 5 views
-1

私のプログラムは動作していません!私はランダムに2つのダイスをロールする必要があります、スネークアイズ(2つのもの)が達成されるまでロール数を数えます。
私は近づいているように感じますが、私のプログラムは2人がロールバックされるまで何度もかわり、1回だけロールします。whileループのJava言語ですか?

私が得ている出力は、1つのダイスロールの無限ループカウントされています!

import java.io.*; 

public class PA 
{ 
    public static void main (String [] args) 
    { 
     int count = 0; 
     int die1 = (int)(Math.random()*6)+1; 
     int die2 = (int)(Math.random()*6)+1; 
     int sumDie = die1+die2;  
     do 
     { 
      System.out.println ("You rolled a:" + die1); 
      System.out.println ("You rolled a:" + die2); 
      System.out.println ("This is roll number:" + count); 
      count = count + 1; 
     } 
     while (sumDie > 2); 
     { 
      System.out.println ("You rolled:" + die1); 
      System.out.println ("You rolled:" + die2); 
      System.out.println ("This is roll number:" + count): 
      count++ 
     } 
     if (die1 == 1 && die2 == 1); 
     System.out.println ("Congratulations...Snake Eyes"); 
    } 
} 
+0

これまでの内容を表示してください。 [mcve]の作成方法をお読みください。 –

+0

実際のコードはどこですか? :) –

+0

謝罪はスクリーンショットを挿入する際に問題を起こしていました...しばらくお待ちください! –

答えて

1

サイコロをループ内に移動するコードを移動する必要があります。 そして、そのコードブロックは必要ない。 そして最後にif - まず、セミコロンのために何もしません(ボディがありません)。第二に、whileの条件がそうであることを保証するので、とにかく必要はありません。

public static void main (String [] args) 
{ 
    int count = 0; 
    int die1, die2; 
    do 
    { 
     // New roll each time 
     die1 = (int)(Math.random()*6)+1; 
     die2 = (int)(Math.random()*6)+1; 

     count = count + 1; 
     System.out.println ("You rolled a:" + die1); 
     System.out.println ("You rolled a:" + die2); 
     System.out.println ("This is roll number:" + count); 
    } while (die1 + die2 > 2); 

    System.out.println ("Congratulations...Snake Eyes"); 
} 
関連する問題