我不确定这个方法做了什么,或者更好,我不确定“:”是什么意思。有人可以帮我理解吗?
private int guess( )
{
return isTrue( ) ? A : isFalse( ) ? B : neither( ) ? C : D;
}
答案 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) *
我认为这几行有助于消除您的疑虑。