编译器不够聪明,无法知道您的至少一个
if块将被执行。因此,它不会看到像这样的变量
annualRate无论如何都会被赋值。这是使编译器理解的方法:
if (creditPlan == "0"){ // ...}else if (creditPlan == "1"){ // ...}else if (creditPlan == "2"){ // ...}else{ // ...}编译器知道对于if / else块,可以保证其中一个块可以执行,因此,如果在所有块中分配变量,则不会产生编译器错误。
顺便说一句,您也可以使用
switch语句代替
ifs来使代码更整洁。



