因此,这就是我到目前为止所掌握的信息,我不知道为什么该程序没有按照我想要的方式进行响应。不断显示“ avg2可能尚未初始化”。有任何想法吗??
if (a < b && a < c) {
System.out.println("The lowest score was: " + a);
System.out.println("The average without the lowest score is: " + ((b + c) / 2));
avg2 = ((b + c) / 2);
}
if (b < a && b < c) {
System.out.println("The lowest score was: " + b);
System.out.println("The average without the lowest score is: " + ((a + c) / 2));
avg2 = ((a + c) / 2);
}
if (c < a && c < b) {
System.out.println("The lowest score was: " + c);
System.out.println("The average without the lowest score is: " + ((a + b) / 2));
avg2 = ((a + b) / 2);
}
最佳答案
我想您已经这样声明avg2:double avg2;
没有初始值。问题是,例如,如果a == b == c
,则您的if条件都不成立,并且avg2
不会被初始化。
解决方案1:初始化avg2:double avg2 = 0;
解决方案2(更好):使用if / else if / else语法代替连续的ifs。如果有其他情况,编译器将对avg2始终被初始化感到满意。