无法弄清楚如何在增量循环中获得每个答案

时间:2018-12-04 21:40:03

标签: java

我正在编写多项选择测验。

我把问题当作对象,每个问题都包含在一个数组中。 这是我的代码。 每个对象的名称分别为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;
}

编辑:我的数组仅包含三个问题。我该如何随机打印出每一幅?

1 个答案:

答案 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()即可仅输出问题。