簡體   English   中英

三元運算符中的條件-Java

[英]Conditions in Ternary Operator - Java

我有一個簡單的if / elseif條件,我正在嘗試使用Ternay Operator將其轉換為return語句以實現代碼冗余,但我一直無法做到。

任何幫助,將不勝感激,謝謝。

這是我的代碼片段:

if (val.equals("a")||val.equals("s")){
    return true;
} 
else if (val.equals("b")||val.equals("t")) {
     return false;
}

return true;

有人可以建議上述if / else-if如何繼續執行return語句(三元運算符)嗎?

這里不需要條件運算符。 只要val既不是b也不是t您的代碼將返回true

return !(val.equals("b") || val.equals("t"));

要么:

return !val.equals("b") && !val.equals("t");

圍繞as的第一個條件是完全不相關的,因為底部的“默認” return true已包括這些情況。

編輯:現在您已經將返回類型更改為int ,這對於與條件運算符一起使用是合理的:

return val.equals("b") || val.equals("t") ? 0 : 1;
return !(val.equals("b") || val.equals("t"))

其余部分是多余的, val不能同時等於“ a”或“ s”,並且不能同時等於“ b”或“ t”,因此您基本上需要檢查它是否等於“ b”或“ t”,並在返回false這種情況下,和true在其他情況下。

return !(val.equals("b") || val.equals("t"));

這是唯一返回false的條件-因此您無需檢查第一個條件。

return !(val.equals("b") || val.equals("t"))

嘗試以下方法:

boolean b = ( val.equals("b") || val.equals("t") ) ? false : true;
return b;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM