java中的返回值语法

时间:2012-04-03 04:39:44

标签: java return

我不确定这个方法做了什么,或者更好,我不确定“:”是什么意思。有人可以帮我理解吗?

private int guess( )
 {
      return isTrue( ) ? A : isFalse(  ) ? B : neither( ) ? C : D;
 }

5 个答案:

答案 0 :(得分:8)

这是嵌套ternary operators的案例,其格式为a ? b : c,其评估结果为:

if (a) then b, else c

所以你的问题可以解释为:

if (isTrue()) {
    return A;
} else if(isFalse()) {
    return B;
} else if(neither()) {
    return C;
} else {
    return D;
}

答案 1 :(得分:3)

这是三元的

a ? b : c

表示(大致)

if (a)
   return b;
else
   return c;

答案 2 :(得分:0)

“?:”是三元运算符。这意味着“如果问号前的条件为真”,则使用冒号前的东西,否则冒号后的东西。

您发布的代码将返回A isTrue()B !isTrue() && isFalse()C !isTrue() && !isFalse() && neither()和{{1} }否则(D)。

答案 3 :(得分:0)

这称为ternary operator

isTrue()?a:b;

在上面的代码中

  

如果isTrue为true,则返回a,否则返回b。

你有一个嵌套的三元运算符。

isTrue( ) ? A :
           isFalse(  )    ? B :
           neither( )     ? C         : D;
  

这意味着isTrue返回true,否则返回false   如果它既不是c返回,则返回d。

@birryree给出了最终的示例代码。

答案 4 :(得分:0)

你的疑问非常明显。这种语法我们称之为terinary运算符。我在下面写的实际语法:

语法:

Condition ? True part : False part ;

在上面的陈述中,如果条件执行为true,那么 True part 将执行,如果执行false,则 False Part 将被执行。

示例:

int x=10;

if(x==10) ? Print 10(true its Manoj) : Print Not 10(false its Anyone else) ;

输出:

打印10(真正的Manoj) *

我认为这几行有助于消除您的疑虑。