我有以下方法:
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
我的代码的哪一部分触发了错误?
答案 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;