[英]Nested return statements in Java
取自enthuware.com
max()方法的以下哪个实现将正确返回最大值?
为什么不正确的选项和解释之一:-我的问题是为什么不正确? 有规则可循吗?
int max(int x, int y){
return(
if(x > y){
return x;
} else {
return y;
}
);
}
如果删除了第一个回车键和相应的括号,它将起作用。
我的问题是为什么这是错误的? 有规则可循吗?
是的,该规则称为“语言语法和语法”。
您自己发现,只有下面的代码具有正确的语法。
int max(int x, int y){
if(x > y){
return x;
} else {
return y;
}
}
还是更好
int max(int x, int y){
return x > y? x: y;
}
“嵌套的回报”没有任何意义。 一旦Java解释器遇到“ return”语句,它只会寻找要从函数中返回的值,并立即退出该函数。 (当然也有例外,例如finally块。)
当您的方法的返回类型为X时,每个return语句后都必须带有一个可被评估为X的表达式。代码中不是这种情况,因为if
语句没有值。
与您尝试执行的操作最接近的是三元运算符:
int max(int x, int y)
{
return (x > y)?x:y;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.