我不太確定這個方法做了什麼,或者更好,我不確定什麼「:」的意思。有人能幫我理解嗎?在java中的返回值語法
private int guess()
{
return isTrue() ? A : isFalse() ? B : neither() ? C : D;
}
我不太確定這個方法做了什麼,或者更好,我不確定什麼「:」的意思。有人能幫我理解嗎?在java中的返回值語法
private int guess()
{
return isTrue() ? A : isFalse() ? B : neither() ? C : D;
}
這是嵌套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;
}
這是有道理的。謝謝! – FranXh 2012-04-03 04:44:53
這是三元
a ? b : c
裝置(大致)
if (a)
return b;
else
return c;
的 「:」 是三元運算符。它意味着「如果問號前的情況是真的」,則使用冒號前的東西,否則冒號後的東西。
您發佈的代碼將返回A
如果isTrue()
,B
如果!isTrue() && isFalse()
,C
如果!isTrue() && !isFalse() && neither()
和D
否則(!isTrue() && !isFalse() && !neither()
)。
這叫做ternary operator。
isTrue()?a:b;
在上面的代碼
如果IsTrue運算爲真,將被返回,否則B將被返回。
你有一個嵌套的三元運算符。
isTrue() ? A :
isFalse() ? B :
neither() ? C : D;
這意味着IsTrue運算爲真返回,否則,如果它是返回 假B和如果它是既不Ç返回否則d將被返回。
@birryree給出了最終的示例代碼。
你的疑問很明顯。這種類型的語法我們稱爲terinary運算符。實際的語法我寫如下:
語法:
Condition ? True part : False part ;
在上面的語句,如果執行的真實情況,然後如果執行爲假,則假部分將執行真一部分將執行。
例子:
int x=10;
if(x==10) ? Print 10(true its Manoj) : Print Not 10(false its Anyone else) ;
輸出:
打印10(真正的馬諾)*
我覺得這幾行,將有助於清除你的疑慮。
您的格式嚴重受損 – xfix 2012-04-03 06:10:06
奇怪的例子。可以'isTrue()'和'isFalse()'真的都是假的? – EJP 2012-04-03 09:55:22
也許這是一個模糊邏輯模擬器? – birryree 2012-04-03 11:52:05