2016-09-04 16 views
0

次の簡単なJavaプログラムを使用して、ユーザーに減算クイズを促します。誰かが、数値を生成し続け、計算を行い、ユーザーにプロンプ​​トを表示し、ユーザーが停止を選択するまでフィードバックを返すループを実装する方法の正しい方法で、私はそれがwhileループを伴うだろうと思っていますが、ユーザーが彼らが止めたいと告げる信号はどうでしょうか?私は彼らに「あなたがいつでも辞めたいときはいつでも___を押してください」と言うことができると理解していますが、プログラムの残りの部分は常にユーザーが整数を入力するよう促しています...もし終了するキーを入力するとQ ")、次の質問が与えられ、コンピュータが整数(Qは整数ではないため)のコマンドライン応答を待っていますか?Java - ユーザーが終了するまでクイズをループする方法は?

import java.util.Random; 
import java.util.Scanner; 

public class MathQuiz 
{ 

    public static void main(String [] args) 
    { 

     // random number generator 
     Random rng = new Random(); 


     // scanner to get user's answer 
     Scanner scan = new Scanner(System.in); 


     // generates random number, 1 <= n <= 9 
     int num1 = rng.nextInt(10); 
     int num2 = rng.nextInt(10); 


     // prompt, answer, user's answer, and feedback 
     String prompt = "What is " + num1 + " - " + num2 + "?"; 
     int answer = Math.abs(num1 - num2); 
     int userAnswer = 0; 
     String feedback = "That's correct, way to go!"; 


     // figure out which is larger 
     if(num1 < num2) 
     { 
      prompt= "What is " + num2 + " - " + num1 + "?"; 
     } 

     System.out.println(prompt); 
     userAnswer = scan.nextInt(); 


     if(userAnswer != answer) 
     { 
      feedback = "That is incorrect."; 
     } 

     System.out.println(feedback); 


    } 


} 
+0

にそれを編集します。 [whileループの詳細](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html)、[forループ](https://docs.oracle.com/javase/tutorial/) – Titus

+0

Titusが言ったことに加えて、ユーザーが終了文字列(CTRL C、 "exit"など)を入力したかどうかを確認し、そうであれば戻ることができます。 –

答えて

1

まず最新if

if(userAnswer != answer) 
{ 
    feedback = "That is incorrect."; 
} 

を削除して、あなたがループにあなたの `main`方法の内容をラップしていることを行うことができます

do 
{ 
    String feedback ; 
    /* 
    your program here 
    */ 
    System.out.println("again 'Y'") ; 
    choice= scan.nextLine() ; 
}while("Y".equalsIgnoreCase(choice)) 
+0

私はjavaのすべてをあまりよく知っているわけではありませんが、私がOracleのサイトで読んだところから、do-whileループがまさに私が探しているものです!ありがとうございました!明確にするために、文字列のフィードバックはユーザーのためのフィードバックです。もしあなたがそれを修正できたら、私は先に進み、答えを受け入れるでしょう! – AleksandrH

+0

ええ、とにかく受け入れ;)おかげで束 – AleksandrH

関連する問題