因此,我正在学习 Java 入门课程,制作一个成绩计算器,并增加了在这组条件下调整成绩的任务:
如果学生完成了奖金作业:
- 考试 1 成绩是:
- 如果考试 2 的成绩高于原始考试 1 的成绩,则为考试 2 成绩的 80%,或
- 原始考试 1 级。
- 考试 2 成绩是:
- 如果考试 3 的成绩高于原始考试 2 的成绩,则为考试 3 成绩的 80%,或
- 原始考试 2 级。
总是首先对考试 1 进行修改。
我首先在考试 1 年级尝试了这个,尝试分配g1n
值g2 * 0.8
if (g2 * 0.8) > g1
,并赋予它 else 的值g1
。我很难看到如何g1n
没有被初始化,因为在我看来我刚刚列出的条件是详尽的。
以下是我的代码的相关部分。是什么赋予了?
// declare variables
int g1;
int g2;
int g3;
char grade;
double g1n;
double g2n;
double avg;
String bonus;
// get input
System.out.println("*************** Grade Computer *************");
System.out.println("Enter the student's first name: ");
String first = input.next();
System.out.println("Enter the student's middle initial: ");
String mid = input.next();
System.out.println("Enter the student's last name: ");
String last = input.next();
System.out.println("Enter EXAM 1 grade: ");
g1 = input.nextInt();
System.out.println("Enter EXAM 2 grade: ");
g2 = input.nextInt();
System.out.println("Enter EXAM 3 grade: ");
g3 = input.nextInt();
System.out.println("Was bonus work done? [yes/no]: ");
bonus = input.next();
System.out.println(g1 + " " + g2 + " " + g3 + " " + bonus);
// adjust exam scores if necesssary
if (bonus.equals("yes")) {
if (((double)g2 * 0.8) > g1) {
g1n = ((double)g2 * 0.8);
} else {
g1n = (double)g1;
}
}
编辑:
我把它改成了这个,但仍然收到相同的消息......
if (bonus.equals("yes")) {
if (((double)g2 * 0.8) > g1) {
g1n = ((double)g2 * 0.8);
}
if (((double)g3 * 0.8) > g2) {
g2n = ((double)g3 * 0.8);
}
} else {
g1n = (double)g1;
g2n = (double)g2;
}
// compute average
avg = (g1n + (double)g2 + (double)g3) / 3;