Java中的变量初始化错误

时间:2015-11-06 23:45:26

标签: java if-statement methods initialization

我有以下方法:

private static double mailTypeOne(double oz) {
    double total;
    if (oz <= 16) {
        total = 3.50;
    } else if (oz > 16 && oz <= 32) {
        total = 3.95;
    } else if (oz > 32) {
        total = 3.95 + (Math.ceil((oz - 32) / 16) * 1.20);
    }
    return total;
}

编译我的代码时,我得到了这个编译错误: the variable 'total' might not have been initialized

我的代码的哪一部分触发了错误?

3 个答案:

答案 0 :(得分:1)

你的其他人如果不一定遵循(编译器)。你需要像

这样的东西
private static double mailTypeOne(double oz) {
    double total;
    if (oz <= 16) {
        total = 3.50;
    } else if (oz <= 32) {
        total = 3.95;
    } else {
        total = 3.95 + (Math.ceil((oz-32)/16) * 1.20);
    }
    return total;
}

您还可以简化上述内容,如

private static double mailTypeOne(double oz) {
    if (oz <= 16) {
        return 3.50;
    } else if (oz <= 32) {
        return 3.95;
    }
    return 3.95 + (Math.ceil((oz-32)/16) * 1.20);
}

答案 1 :(得分:1)

声明与初始化不同。只是说

 double total = 0;

答案 2 :(得分:0)

你的if else语句应该以else语句结束,这可以确保必须初始化变量total,而不管oz

的值

另一种方法是在声明期间将total初始化为0.0。也就是说,而不是double total;double total = 0.0;