私は、 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
あなたがそこに取得しています。ユーザーがどれくらいの間推測し続けるべきかについてもっと考えてみてください。今のところ、ユーザーは目標を上回っている限り数字を推測することができます。それから、彼らは目標よりも低い限り数字を推測することができます。しかし、それは簡単に間違って行くことができます。ターゲットが50であるとしましょう。私は最初に49を推測します。これは低いので、最初のループが終了します。それから、私は57が高いと推測するので、2番目のループが終了します。私はまだ実際の数を推測していない!あなたが本当にやりたいことは、推測が目標*と等しくない間に*をループすることです。 – dlev
'while'ループで' guess!= number'をテストする必要があります。次に、メッセージを 'if'でカスタマイズします。ループが終了すると、ゲームが終了します。 –
'while'ループの中で' guess'を再定義し、 'guess'が数値より大きいか小さいかのチェックを分離しているので、コード内で無限ループを実行します。 whileループ条件として使用される 'guess'は、ループ内で作成する' int推測 'と同じではありません。ヒントヒント;) – birryree