繁体   English   中英

Java中的嵌套return语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM