我正在学习Java,但是遇到了一个错误。我知道这个问题已经被问过很多次,但是没有一个答案似乎能够回答我的问题。代码的主体如下:
String[] number = {"too small", "one", "two", "three", "four", "too large"};
int i;
if(num<1){
i=0;
}
if(num==1){
i=1;
}
if(num==2){
i=2;
}
if(num==3){
i=3;
}
if(num==4){
i=4;
}
if(num>4){
i=5;
}
return number[i];
在变量“num”被声明、初始化和赋值之前。我得到的错误是:“变量'i'可能未被初始化”,并指向最后一行(return number[i];)。
问题在于,如果我声明'i'并立即赋一个值(int i=0;),代码就能正常运行。但如果我不给'i'赋值,即使每个“if”后都有可能的值被赋予,我仍会得到错误提示。
例如,在C语言中,我不会遇到这种错误。
谢谢。
else
,并且(2)使最后一个分支成为没有另一个if
的else
,即else { ...
而不是else if (num> 4) {...
。 我认为这对读者更清晰,同时避免了“明确赋值”问题。 在这种特殊情况下,我只会写int i =(num <1)?0:(num> 4)?5:num;
。 - ajbelse
:| - user2864740