黑马程序员技术交流社区

标题: 最基础的,函数问题 [打印本页]

作者: 曾林魁    时间: 2013-7-29 12:17
标题: 最基础的,函数问题
本帖最后由 曾林魁 于 2013-7-30 09:27 编辑

为什么编辑不通过

class FunctionDemo
{
public static void main(String[] args)
{
  getLevel(90);
}
public static char getLevel(int num)
{
  char level;
  if(num>=90&&num<=100)
   level='A';
  else if(num>=80&&num<=89)
   level='B';
  else if(num>=70&&num<=79)
   level='C';
  else if(num>=60&&num<=69)
   level='D';
  else if(num<60||num>100)
   level='E';

  return level;
}
}

作者: 王磊    时间: 2013-7-29 12:28
因为char level没有进行初始化。编译器逐行编译,它不会自动的进行逻辑判断,所以当判断到return level的时候,发现level没有初始化,编译就不会通过。

你可以定义成char level = 0;
作者: denghui1010    时间: 2013-7-29 12:32
你需要给level一个初始值,因为你一顿if下来,可能不满足任何条件,也就是说level可能不会被赋值,那么就return不了了,就出错啦
作者: hanrongle    时间: 2013-7-29 12:38
java中需要先给一个变量分配空间,你的变量level没有赋初始值的就没有分配空间,所以程序是不能运行的。
作者: 柏圣杰    时间: 2013-7-29 22:35
getLevel函数运行结束,level的值可能为空,与返回类型不匹配
作者: 王希军    时间: 2013-7-29 23:51
哎····   来晚了     
作者: 黑马王晓明    时间: 2013-7-30 00:59
java中规定局部变量在定义了以后必须为其赋初始化值   否则是不能使用的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2