因此,这就是我到目前为止所掌握的信息,我不知道为什么该程序没有按照我想要的方式进行响应。不断显示“ 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始终被初始化感到满意。

09-06 20:35