[英]how can i store more than one session data in httpsession?is there any other way to store
[英]How to store results of for loop as an array in java? Is there any other way I can write this code neat way?
'''公共 class question6a {
public static void main(String[] args) {
'''
这是存储学生给出的答案
char[][] answers = { { 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
{ 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
{ 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
{ 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }, };
这是检查答案的关键,无论它们是否正确。
char[] key = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };
这是通过比较两个 arrays 的值来检查答案。
for (int i = 0; i < answers.length; i++) {
for (int j = 0; j <= 9; j++) {
if (answers[i][j] == key[j]) // comparing elements(Chars) of two arrays.
此代码添加编号。 学生给出的正确答案。
{int sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
switch (i) {
case 0:
sum++;
break;
case 1:
sum1++;
break;
case 2:
sum2++;
break;
case 3:
sum3++;
break;
case 4:
sum4++;
break;
case 5:
sum5++;
break;
case 6:
sum6++;
break;
case 7:
sum7++;
break;
}
}
'''
}
}
'''
这是打印学生的结果。
System.out.println("Student 0 got " + sum + " Marks. ");
System.out.println("Student 1 got " + sum1 + " Marks. ");
System.out.println("Student 2 got " + sum2 + " Marks. ");
System.out.println("Student 3 got " + sum3 + " Marks. ");
System.out.println("Student 4 got " + sum4 + " Marks. ");
System.out.println("Student 5 got " + sum5 + " Marks. ");
System.out.println("Student 6 got " + sum6 + " Marks. ");
System.out.println("Student 7 got " + sum7 + " Marks. ");
}
}
您可以创建一个int
数组来保存学生的所有分数
public static void main(String[] args) {
char[][] answers = {
{ 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
{ 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
{ 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
{ 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }
};
char[] key = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };
int[] studentsMarks = new int[answers.length];
for (int i = 0; i < answers.length; i++) {
for (int j = 0; j < answers[i].length; j++) {
if (answers[i][j] == key[j]) {
studentsMarks[i] += 1;
}
}
System.out.println("Student "+ (i + 1) + " got " + studentsMarks[i] + " Marks.");
}
}
output:
Student 1 got 7 Marks.
Student 2 got 6 Marks.
Student 3 got 5 Marks.
Student 4 got 4 Marks.
Student 5 got 8 Marks.
Student 6 got 7 Marks.
Student 7 got 7 Marks.
Student 8 got 7 Marks.
您在每个循环中切换之前声明以下行,因此每次都使所有总和为零,因此您将获得最终答案 0 或 1。要获得正确的结果,请在开始 for 循环之前删除并添加此行,您也可以创建 int[] sum=new int[8] 在数组中存储为 sum[i] 而不是 sumi,如下所示。
int sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
如何使用流:
char[] correctAnswers = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };
char[][] studentAnswers = { { 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D' },
{ 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D' },
{ 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D' },
{ 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D' },
{ 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D' }, };
IntStream.range(0, studentAnswers.length).forEach(i ->
System.out.println("Student Nr " + (i+1) + " has " +
IntStream.range(0,correctAnswers.length).filter(j -> studentAnswers[i][j] == correctAnswers[j]).count()
+ " correct answers"));
产生这些结果:
Student Nr 1 has 7 correct answers
Student Nr 2 has 6 correct answers
Student Nr 3 has 5 correct answers
Student Nr 4 has 4 correct answers
Student Nr 5 has 8 correct answers
Student Nr 6 has 7 correct answers
Student Nr 7 has 7 correct answers
Student Nr 8 has 7 correct answers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.