2016-07-26 1 views
-4

は最近、私は、java、 に私の初心者チュートリアルに練習してきた場合それは偽を返します、それ以外の場合は真を返します。私は、ユーザーが5倍よりも大きいをしようとした場合</p> <p>私の主な焦点は、ユーザーが書き込むことができるようにし、もしelse文で捕まってしまったしかしelse文

ご協力いただきますようお願い申し上げます。

int userTry = 0; 
double value1 = 0; 
Scanner useranswer1 =new Scanner(System.in); 

if(userTry == 5){ 
    do{ 
     System.out.println("What is 10 divided by 4?"); 
     value1 = useranswer1.nextDouble(); 

    } 
    while(value1 != 2.5); 
    System.out.println("You got the right answer"); 
    } else { 

    } System.out.println("You have zero more tries"); 
} 
+1

あなたがもしあなたの周りにループを配置する必要があり、反対 –

+0

人が5回まで試すことができますループを作りません。 'for'ループはこれにはかなり良いようです。正しい答えが得られた場合(これをチェックするために 'if'を使います)、ループから' break'を出してください。 – ifly6

+1

試行回数を含めるにはループを変更してください –

答えて

1

これを試してみてください:

do{ 
    System.out.println("What is 10 divided by 4?"); 
    value1 = useranswer1.nextDouble(); 
    userTry++; 
} 
while(value1 != 2.5 && userTry != 5); 
if(userTry == 5){ 
     System.out.println("You have zero more tries");  
} else { 
    System.out.println("You got the right answer"); 
} 
+2

Jérèmが間違っているのは、userTry == 4で5に増やすためですが、彼は実際に正しい答えを得ています。しかし、あなたは "あなたはもう一度試行がある"と印刷します。 – Deceiver

+0

もちろん、それは単なるヒントです... –

+0

十分に公正です。 ;) – Deceiver

2

キーは、彼らが十分なリトライを持っている場合、ユーザは正しい値を取得していないことを確認に基づいて、あなたがdo-whileループの条件を設定することです。

ユーザーに適切な値が設定されている場合は、必要な回数の再試行でそれを行います。そうでなければ、ゼロ試行になります。お役に立てれば。

int userTry = 0; 
double value1 = 0.0; 
Scanner useranswer1 = new Scanner(System.in); 

do { 
    System.out.println("What is 10 divided by 4?"); 
    value1 = useranswer1.nextDouble(); 
} while (value != 2.5 && ++userTry < 5); // NOTE: pre-increment and check. If you like to have a safer version, move this increment inside the while loop. 

if (value1 != 2.5) { 
    System.out.println("You have zero more tries"); 
} else { 
    System.out.println("You got the right answer!"); 
} 
3

次のことを試してみてください。

int userTry = 0; 

    double value1 = 0; 
    Scanner useranswer1 =new Scanner(System.in); 

    for (int userTry = 5; userTry > 0; userTry--) 
     System.out.println("What is 10 divided by 4?"); 
     value1 = useranswer1.nextDouble(); 
     if (value1 == 2.5) break; 
     System.out.println(); // empty line 
    } 

    if (value1 == 2.5) { 
     System.out.println("You got the right answer"); 
    } else { 
     System.out.println("You have zero more tries"); 
    } 
} 
+0

この答えは、何の理由もなくdo-whileループを実行するよりも意味があります – ifly6

+0

whileループは今日の話題でしたが、ループはまだ議論されていませんでしたか?これは学習者の状況のように見えます。 –

2
int count = 0; 
    double trueAnwer = 6.66; 
    while (true) { 
     count++; 
     Scanner useranswer1 =new Scanner(System.in); 
     if (trueAnwer == useranswer1.nextDouble()) { 
      System.out.println("You got the right answer"); 
      return; 
     } 
     if (count==5) { 
      System.out.println("You have zero more tries"); 
      return; 
     } 
     System.out.println("This is "+count+" times"); 
    } 
+0

ループの反復ごとに 'useranswer1'をインスタンス化する必要はありません。 –

関連する問題

 関連する問題