[英]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");
圍繞a
和s
的第一個條件是完全不相關的,因為底部的“默認” 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.