我正在编写多项选择测验。
我把问题当作对象,每个问题都包含在一个数组中。 这是我的代码。 每个对象的名称分别为q1,q2,依此类推。
for(int i = 0; i < questions.length; i++)
{
System.out.println(questions[i]);
choice = kb.nextLine();
if(choice.equals(q1.getCorrectAns()))
{
correct++;
}
}
比较适用于问题1的答案,但我不知道如何对每个问题进行比较更改。
我还尝试搜索如何忽略用户输入的情况,但是我尝试的事情不起作用。我该如何实现?
对象和数组的创建
Question q1 = new Question("These are the rules that must be followed when writing a program.",
"a. syntax", "b. punctuation", "c. key words", "d. operators", "a");
Question q2 = new Question("A group of statements are enclosed in __________.",
"a. brackets []", "b. parenthesis ()", "c. braces {}", "d. any of these", "c");
Question q3 = new Question("This is an if statement that appears inside another if statement",
"a. nested if statement", "b. structured if statement", "c. tiered if statement", "d. dislodged if statement", "a");
Question[] questions = new Question[3];
questions[0] = q1;
questions[1] = q2;
questions[2] = q3;
这是问题对象的构造函数
public Question(String question, String optionA, String optionB, String optionC, String optionD, String correctAns)
{
this.question = question;
this.optionA = optionA;
this.optionB = optionB;
this.optionC = optionC;
this.optionD = optionD;
this.correctAns = correctAns;
}
编辑:我的数组仅包含三个问题。我该如何随机打印出每一幅?
答案 0 :(得分:0)
当您执行以下操作时,您已经正确地对问题进行了迭代:System.out.println(questions[i]);
-您也需要这样做以进行答案比较。
具体地说,不是检查if(choice.equals(q1.getCorrectAns()))
,而是检查if(choice.equals(questions[i].getCorrectAns()))
请注意,您可能需要考虑更改问题输出以进行类似System.out.println(questions[i].getQuestion());
的操作,因此您不必覆盖Question.toString()
即可仅输出问题。