比较两个数组

时间:2015-12-13 21:22:09

标签: java arrays

我有一个模拟学生多项选择测试项目的两个数组。第一个数组是测试的20个正确答案:

(正确答案)正确[]中包含以下数字:

  1,4,3,3,2,2,1,1,4,5,3,3,3,5,2,4,2,5,4,5

(学生答案)答案[]中包含以下数字:

  0,3,3,0,2,4,0,1,4,5,0,3,3,1,2,4,2,0,4,5

如果学生选择" 0"他们承认他们不知道答案,他们的分数保持不变。如果他们选择了错误的答案,他们将失去0.25分,如果他们选择了答案,他们会得到1分。

我试图找出如何创建一个比较每个数组中元素的循环,并为学生提供整体成绩。

非常感谢任何帮助。

编辑:这是我尝试过的代码:

double totalGrade = 0;

while(i <= 20) {

    switch(studentAnswer){

    case 0:
        break;
    case 1:
        if(correct[i] == answers[i])
        {
            totalGrade ++;
        }
        else {
            totalGrade = totalGrade - 0.25;
        }
    case2:
        if(correct[i] == answers[i])                    
        {
            totalGrade ++;
        } 
        else {
            totalGrade = totalGrade - 0.25;
        }
    case 3:
        if(correct[i] == answers[i])                    
        {
            totalGrade ++;
        }else {
            totalGrade = totalGrade - 0.25;
        } 
    case 4:
        if(correct[i] == answers[i])                    
        {
            totalGrade ++;
        }  
        else {
            totalGrade = totalGrade - 0.25;
        }
    case 5:
        if(correct[i] == answers[i])                    
        {
            totalGrade ++;
        }else {
            totalGrade = totalGrade - 0.25;
        }
    }

}

1 个答案:

答案 0 :(得分:0)

for(int i=0; i<correct.length; i++){
    if(answers[i] == correct[i]){
        totalGrade += 1;
    } else if(answers[i]!=0){
        totalGrade -= 0.25;
    }
}

编辑:对于switch / case语句来说,这不是真正正确的用法,因为大多数情况都是完全相同的。如果你想走那条路,那就更像是

for(int i=0; i<correct.length; i++){
    switch(answers[i]){
        case 0:
            break;
        case else:
            if(answers[i] == correct[i]){
                totalGrade += 1;
            } else{
                totalGrade -= 0.25;
            }
            break;
    }
}