2011-11-09 11 views
0

私は、 100とそれを得るまでそれを上げるか下げるかを指定します。私はユーザーがランダム#1 - 100を推測できるようにするプログラムを作ろうとしており、それが得られるまでそれを上げるか下げるかを教えてくれるでしょう。

これまで私がこれまで行ってきたことです。私はここから何をすべきか分からない。 公共 {

public static void main(String[] args) 
     { 
     Scanner keyboard = new Scanner(System.in); 
     Random log = new Random();  

     //1 - 100 
     int number = (log.nextInt(100) + 1); 


     System.out.println("Guess?"); 
     int guess = keyboard.nextInt(); 

     if (guess == number) 
     { 
      System.out.println("Congratulations!"); 
     } 
     while (guess != number) 
     { 
     if (guess > number) 
     { 
      System.out.println("The number is lower than that."); 
      guess = keyboard.nextInt(); 

     } 
     if (guess < number) 
     { 
      System.out.println("The number is higher than that."); 
      guess = keyboard.nextInt(); 

     } 
     if (guess == number) 
     { 
      System.out.println("Congratulations!"); 
     } 
     } 


     }//end of main 


}//end of class 



}//end of class 
+0

あなたがそこに取得しています。ユーザーがどれくらいの間推測し続けるべきかについてもっと考えてみてください。今のところ、ユーザーは目標を上回っている限り数字を推測することができます。それから、彼らは目標よりも低い限り数字を推測することができます。しかし、それは簡単に間違って行くことができます。ターゲットが50であるとしましょう。私は最初に49を推測します。これは低いので、最初のループが終了します。それから、私は57が高いと推測するので、2番目のループが終了します。私はまだ実際の数を推測していない!あなたが本当にやりたいことは、推測が目標*と等しくない間に*をループすることです。 – dlev

+0

'while'ループで' guess!= number'をテストする必要があります。次に、メッセージを 'if'でカスタマイズします。ループが終了すると、ゲームが終了します。 –

+0

'while'ループの中で' guess'を再定義し、 'guess'が数値より大きいか小さいかのチェックを分離しているので、コード内で無限ループを実行します。 whileループ条件として使用される 'guess'は、ループ内で作成する' int推測 'と同じではありません。ヒントヒント;) – birryree

答えて

0

あなたは現在の推測が正しいかどうかチェックするメインループを必要とするHIGHLOWクラス、およびAN上位または下位ビットを決定if文。現在、2つの別個のwhileループは仕事をしません。

0

ループは2つではなく、1つだけ使用してください。あなたのゲームが推測は数に等しいあるときに停止するので、あなたが条件を終了することをしたい:

while (guess != number) 

次に、ループ内で、テストを推測は数以上低い場合、印刷適切なメッセージを確認し、次の推測を読んでください。ループが終了すると、ユーザーが番号を見つけたことを意味します。

EDIT:繰り返しを避けるために:

System.out.println("Guess?"); 
int guess = keyboard.nextInt(); 
while (guess != number) { 
    if (guess > number) { 
     System.out.println("The number is lower than that."); 
    } 
    else { 
     System.out.println("The number is higher than that."); 
    } 
    guess = keyboard.nextInt(); 
} 
System.out.println("Congratulations!"); 
+0

どうすれば、新しいintクラスを99回作成することなく、次の推測を読むことができますか? – user1038113

+0

あなたの2つのループのそれぞれで、あなたが今やっているように。 –

+0

私はそれが既存の "推測"インターガーを上書きできるようにしたい。私があなたが言ったことをするとき、それはint推測がメインで既にdeinfedと言います。 – user1038113