黑马程序员技术交流社区

标题: 对于非void方法。。 [打印本页]

作者: 李迪    时间: 2011-7-26 20:42
标题: 对于非void方法。。
对于非void方法,必须确保方法执行,每个可能流程中都存在return,
static int method(int num){
if (num>0)
return 1;
else if(num==0)
return 0;
else if (num<0)
return -1;
}这段代码为执行不成功呢?帮助
作者: 匿名    时间: 2011-7-26 20:48
网上查德希望可以帮助你
编译器并不像想象中的那么智能,虽然你的选择语句已经包括了n的所有取值情况,但是对于形如if……else if……的选择语句,只有最后以else结束,编译器才能肯定已经罗列了所有选择。
也可以这么理解,考虑下面的代码:
public static int sign(int n) {
if(n=1) return 1;
else if(n==2) return 0;
else if(n==3) return -1;
}
可以肯定这选择语句并没有罗列出所有情况,但是在编译器看来,这跟你本来写的没有区别,编译器不可能帮用户判断复杂的逻辑,它必须按照某种可以准确描述的规则来编译。




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