A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾林魁 中级黑马   /  2013-7-29 12:17  /  1524 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曾林魁 于 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;
}
}

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

6 个回复

倒序浏览
因为char level没有进行初始化。编译器逐行编译,它不会自动的进行逻辑判断,所以当判断到return level的时候,发现level没有初始化,编译就不会通过。

你可以定义成char level = 0;

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
你需要给level一个初始值,因为你一顿if下来,可能不满足任何条件,也就是说level可能不会被赋值,那么就return不了了,就出错啦

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
java中需要先给一个变量分配空间,你的变量level没有赋初始值的就没有分配空间,所以程序是不能运行的。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
getLevel函数运行结束,level的值可能为空,与返回类型不匹配
回复 使用道具 举报
哎····   来晚了     
回复 使用道具 举报
java中规定局部变量在定义了以后必须为其赋初始化值   否则是不能使用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马