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