创建一个循环来检查数组(java)

时间:2015-10-28 11:19:24

标签: java arrays loops

家庭作业建议只是因为我非常希望学习这个作为第二天性! 目标是创建一个数组,其中包含用户指定的问题数量(数组大小),后跟答案键(现在填充的数组大小)。然后让用户输入“学生”答案以检查密钥。 我写下了所有不用担心的事情。工作可爱。我遇到的问题有两个方面:

  • 创建一个循环,要求对另一个测验进行评分。
  • 只检查/评分/计算每隔一个的答案。即:仅答案。

我使用了do / while循环来继续检查,但无法获得一个标记值。也取决于我放置它的位置,答案一直作为第一次检查。所以我不确定在哪里放置以及如何编写它。我甚至试图在数组和学生回答部分使用for循环拳击无济于事。 关于让它检查每一个,我想把“i”的数量修改为类似((i + 1)* 2)而不是i ++用于两个for循环,但我只是得到错误,因为它似乎没有一点都不合适。

提前谢谢!

import java.util.Scanner;
import java.text.NumberFormat;

public class EvenQuizzes {
    public static void main(String[] args) {
        int quizQuest = 0, count = 0;
        double percentTotal = 0.0;
        Scanner scan = new Scanner(System.in);
        System.out.print("How many questions are in the quiz? Or enter 0 to quit. ");
        quizQuest = scan.nextInt();
        int[] answers = new int[quizQuest]; // scan in question total and apply
                                            // to array
        System.out.println("Enter the answer key: ");
        for (int i = 0; i < answers.length; i++) {
            answers[i] = scan.nextInt();
        }
        for (int i = 0; i < answers.length; i++) {
            System.out.println("Enter the answer to be graded : ");
            int toGrade = scan.nextInt();
            if (toGrade == answers[i]) {
                count++;
            }
        }
        percentTotal = ((double) count / quizQuest);
        NumberFormat defaultFormat = NumberFormat.getPercentInstance();
        defaultFormat.setMinimumFractionDigits(2);
        System.out.println("The questions answered correctly total: " + count);
        System.out.println("The percentage correct is: " + defaultFormat.format(percentTotal));
        System.out.println("\nAnother quiz to be graded?");
    }
}
// do ( quizQuest != 0){ //condition check to run new quiz against KEY
// for (int j = 0; (quizQuest = scan.nextInt()) != 0; j++); { 

在底部是我考虑过的循环部分我遇到了麻烦。

3 个答案:

答案 0 :(得分:1)

当你要求提示(而不是代码)时,这里是:

对于多个测验,请使用do-while,如下所示:

do{
    //do something
    //scan the value of quiz quest
    //do something
}while(quizquest != 0)

现在,如果只检查偶数位置的答案,请执行以下操作:

for (int i =0; i <answers.length; i++)
   {

       System.out.println("Enter the answer to be graded : ");
       int  toGrade = scan.nextInt();

       if(i % 2 == 0 && toGrade == answers[i]){   
          count++ ;

       }


   }

答案 1 :(得分:1)

创建一个循环,要求对另一个测验进行评分:您可以使用带有布尔值的do-while循环,指示用户(教师?)是否想要对另一个测验进行评分:

do{
    boolean continue = false; 
    // check if the user wants to continue
while(continue);

让它只检查/评分/计算每个其他答案。 ie:仅答案:您可以使用模运算符检查答案:

if(i % 2 == 0){
    // even answer
}

希望这有帮助!

答案 2 :(得分:0)

您应该有一个名为continue的变量,其默认值为'Y'。在一开始,创建一个while循环来检查条件continue==Y,最后当您询问"Another quiz to be graded?"时,请读入变量continue的输入。< / p>