1

編集:私のプログラムがついに実行されていることを本当にありがとう。

addChoiceのコードを編集して、連結された数字と空白の文字列を読み取るようにします。checkanswerメソッドも変更しましたが、それでも正しい答えを入力すると間違ってカウントされます。以下は私のコードです

          public void addChoice(String choice, boolean correct){
      super.addChoice(choice, correct);
      if(correct == true){
           count++;
           choiceString +=   "" + count+" " ;
           answers.add(choiceString);
            }
       super.setAnswer(choiceString.trim());
     }            


     public boolean checkAnswer( String response )
   {
    super.checkAnswer(response);
    boolean ok = false;
    response = response.trim();
    String correctAnswers [] = response.split(" ");
    for(int i=0; i<correctAnswers.length;i++){
        if (answers.contains(correctAnswers[i]))
        { ok = true;}
        else
        {  ok=false;}
     }
    return ok;
   }

私の問題:

私の質問では、最初と2番目のオプションが正しいので、ユーザーは1または2または12または21のいずれかを入力して、質問の完全なスコアを取得できます。上記以外のオプションを入力すると、ゼロを復活させる必要があります。だから私の問題は、私のチェックアンサーメソッドは何らかの理由で常にtrueを返すので、間違った答えを入力しても、それはtrueとしてカウントされるので、その部分の助けが必要になります。

ありがとうございました

4

2 に答える 2

3

常にtrueここに設定していますAnyChoiceQuestioncheckAnswer

if(true)
     {ok = true;}

私はあなたが言うつもりだったと思います:

if (answers.contains(correctAnswers[i]))
    ok = true;
于 2012-05-24T18:11:56.067 に答える
0

問題は if(true) にあり、常に発火します。したがって、答えは真になります。if (answers.contains(correntAnswers[i[)

于 2012-05-24T18:14:27.223 に答える