2012-02-24 21 views
0

次のコードがありますが、実行するとダイの値が出力されません。ここスキャナクラスを使用した入力時に文字列が出力されない

は、ソースコードである:

System.out.println("Player 1s Go.\nEnter R to Roll and H to Hold"); 
input = scanner.next(); 
while (input.equals("R")) { 
    input = scanner.next(); 
    die.throwDie(); 
    System.out.println("Value on Die: " + die.getFaceValue()); 
    if (rolledOne()) { 
     player1Rolled.clear(); 
     System.out.println("Player 1 scored 0, End of turn"); 
     holdPlayer1 = true; 
     holdPlayer2 = false; 
     break; 
    } else { 
     player1Rolled.add(die.getFaceValue()); 
    } 
} 

getFaceValue()は、ダイの値を返す型クラスのアクセサメソッドです。 throwDie()は、値を変更してダイのローリングをシミュレートするミューテータ方法です。

私が手出力は以下の通りである。私はそれが二回転がりだけ第2のロールの値のうち、印刷され、二回ロールバックすることを指示する必要が

Player 1s Go. 
Enter R to Roll and H to Hold 
*R 
R* 
Value on Die: 5 
*R* 
Value on Die: 5 
*R* 

注意してください。

+3

問題は? – Steven

+3

あなたのコードはダイの価値をプリントアウトしていないと言いますが、あなたのサンプル出力はそうだと言います。 – mcfinnigan

+0

私の編集を参照してください。私は最初に2度ロールバックしなければなりません。 – Dean

答えて

1

scanner.next()を2回呼び出します。ループの外側に一度、内側に一度。最初の入力が "R"の場合、whileループに入り、すぐに新しい入力を待ちます。

移動するのではなく、ループの最後に移動します。あなたが探している動作を開始すると思います。

+0

はい私は半分眠っています。入力が変更されていないので、私はそれを入れて気付かなかった。しかし、私はそれをループの間違った場所に置いた。 – Dean

関連する問題