编辑:
非常感谢,我的程序终于开始运行了。

我编辑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;
   }


我的问题:

对于我的问题,第一个和第二个选项是正确的。因此,他的用户可以输入1或2或1 2或2 1以便他/她获得该问题的满分。当我键入除上面列出的选项以外的其他任何选项时,我应将其恢复为零。所以我的问题是我的检查答案方法由于某种原因总是返回true,因此无论我键入什么答案,即使我输入了错误的答案也算为true。因此,我将需要这一部分的帮助。

谢谢

最佳答案

您始终在trueAnyChoiceQuestion中将其设置为checkAnswer

if(true)
     {ok = true;}


我想你的意思是说:

if (answers.contains(correctAnswers[i]))
    ok = true;

10-02 03:00
查看更多