编辑:
非常感谢,我的程序终于开始运行了。
我编辑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。因此,我将需要这一部分的帮助。
谢谢
最佳答案
您始终在true
。AnyChoiceQuestion
中将其设置为checkAnswer
:
if(true)
{ok = true;}
我想你的意思是说:
if (answers.contains(correctAnswers[i]))
ok = true;