黑马程序员技术交流社区
标题:
JAVA中函数程序中出现 可能尚未出现初始化变量的问题 求...
[打印本页]
作者:
neil2015
时间:
2015-11-27 19:03
标题:
JAVA中函数程序中出现 可能尚未出现初始化变量的问题 求...
class demo
{
public static void main(String[] args)
{
System.out.println("等级为"+fenshu(91));
}
public static char fenshu(int x)
{
char level;
if(x>=90 && x<=100)
{
level = 'A';
}
else
if(x>=80 && x<=89)
{
level = 'B';
}
else
if(x>=70 && x<=79)
{
level = 'C';
}
else
if(x>=60 && x<=69)
{
level = 'D';
}
else
if(x>0 && x<60)
{
level = 'E';
}
return level;
}
}
上述代码编译的时候提示可能尚未出现初始化变量level. 如果这时候把char level 随意赋值一个数的话,程序就可以编译通过。
或者
稍微改动一下结果'E'的else if 把IF语句去掉 也能通过
为什么第一组代码通过不了,求大神解答?
class demo
{
public static void main(String[] args)
{
System.out.println("等级为"+fenshu(91));
}
public static char fenshu(int x)
{
char level;
if(x>=90 && x<=100)
{
level = 'A';
}
else
if(x>=80 && x<=89)
{
level = 'B';
}
else
if(x>=70 && x<=79)
{
level = 'C';
}
else
if(x>=60 && x<=69)
{
level = 'D';
}
else
{
level = 'E';
}
return level;
}
}
作者:
Evelyn_Jone
时间:
2015-11-27 20:08
你如果不给level初始赋值的话,万一level进不到你所有的条件里,那这个时候level是不是就不知道是什么值了,所有才会报错。而你所说的去掉最后的if就是给了level进入条件的最后一个机会,这个时候的level是必然会被赋值的,所以才不会报错
作者:
neil2015
时间:
2015-11-27 20:38
Evelyn_Jone 发表于 2015-11-27 20:08
你如果不给level初始赋值的话,万一level进不到你所有的条件里,那这个时候level是不是就不知道是什么值了 ...
太感谢了。我懂了
作者:
洋葱头头
时间:
2015-11-27 21:29
成员变量有自动初始化 但是方法内的局部变量必须初始化哦
作者:
zqiang
时间:
2015-11-27 21:35
二楼正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2