だから私は入門Javaコースにいて、この一連の条件で成績を調整する追加のタスクで成績計算機を作っています:
学生がボーナスワークを完了した場合:
- 試験 1 の成績は次のいずれかです。
- 元の試験 1 の成績より高い場合は、試験 2 の成績の 80%、または
- 元の試験 1 の成績。
- 試験 2 の成績は次のいずれかです。
- 元の試験 2 の成績より高い場合は、試験 3 の成績の 80%、または
- 元の試験 2 グレード。
変更は常に試験 1 に対して最初に行われます。
私は最初に試験 1 の成績でこれを試しg1n
、値g2 * 0.8
ifを割り当てようとし、それ以外(g2 * 0.8) > g1
の値を与えました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;