2017-11-28 26 views
-1

私は初心者向けのプログラミングです。配列を使用して複数の質問をして、それぞれの質問が正しいか間違っているかをユーザーに教えてもらいたいのですが、これを実行することができました。質問を正しく受けようとする試みは3回までです。ループ内のループとIf文?

for(int n = 0; n <QArray.length; n++) 
{ 
    System.out.println("Question" + (n+1)); 
    System.out.println(QArray[n]); 

    String ans = scanner.nextLine(); 

    if (ans.equalsIgnoreCase(AArray[n])) 
    { 
     System.out.println("That is correct!"); 
    } 
    else 
    {  
     System.out.println("That is incorrect!"); 
    } 
} 
+0

あなたは3 –

+1

'しばらくまでカウント' for'ループを使用することができます(試み> 0) '、その後、毎回「試行」を減らしますか? – tadman

答えて

-1

最初のループの内側に2番目のループを挿入します。

for(int n = 0; n < QArray.length; n++) { 
    boolean correct = false; 
    for(int m = 0; m < 3; m ++) { 
    String ans = scanner.nextLine(); 
    if (ans.equalsIgnoreCase(AArray[n])) { 
     System.out.println("That is correct!"); 
     correct = true; 
     break; 
    } else {  
     System.out.println("That is incorrect!"); 
    } 
    } 
    if(!correct) { 
    //something 
    } else { 
    //something else 
    } 
} 

break;に注意してください。このコマンドは、正解が提出されたときに内部for-loop(スキャナ入力を含む)を終了します。ユーザーが3回の試行で正しい答えを得られない場合、forループはカウンターの最後に到達することで終了します。

0

私はあなたの目標を正しく理解すれば、あなたは質問のリストを持っていますが、失敗した試行回数は3回未満ですが、試して回答してもらいたいですか?あなたの既存のスタイルを使用して

、あなたはデータが表示され、転送とセキュリティに関する懸念がなど、それが含まれているQuestionAnswerオブジェクトを持つようにコードを管理しやすくするためになるだろうされた方法によっては

for(int n = 0; n < QArray.length; n++) 
{ 
    System.out.println("Question" + (n+1)); 
    System.out.println(QArray[n]); 

    int incorrectAnswers = 0; 
    while(incorrectAnswers < 3) 
    { 
     String ans = scanner.nextLine(); 
     if (ans.equalsIgnoreCase(AArray[n])) 
     { 
      System.out.println("That is correct!"); 
      break; 
     } 
     else 
     {  
      System.out.println("That is incorrect!"); 
      incorrectAnswers++; 
     } 
    } 
} 

ような何かを行うことができます質問と回答、有効な回答を構成する方法(例:大文字小文字を区別しない、または複数の単語などを受け入れるなど)があります。以下。

for(int i = 0; i < questionAnswerArray.length; i++) 
{ 
    QuestionAnswer qa = questionAnswerArray[i]; 

    System.out.println("Question " + (i+1)); 
    System.out.println(qa.getQuestion()); 

    int incorrectAnswers = 0; 
    while(incorrectAnswers < 3) 
    { 
     String ans = scanner.nextLine(); 
     if (qa.isValidAnswer(ans)) 
     { 
      System.out.println("That is correct!"); 
      break; 
     } 
     else 
     {  
      System.out.println("That is incorrect!"); 
      incorrectAnswers++; 
     } 
    } 
} 
0

の数でwhileを使用しようとあなたが必要としよう:

for (int n = 0; n < QArray.length; n++) { 
    System.out.println("Question" + (n + 1)); 
    System.out.println(QArray[n]); 
    int attempt = 3; 

    while (attempt > 0) { 
     System.out.print("Please enter the answer: "); 
     String ans = scanner.nextLine(); 
     if (ans.equalsIgnoreCase(AArray[n])) { 
      System.out.println("That is correct!"); 
      break; 
     } else { 
      System.out.println("That is incorrect!"); 
     } 
     attempt--; 
    } 
} 
関連する問題