[英]How do I use if/else shortcut to print string based on boolean value
我想打印:
Permissive mode: ON
要么
Permissive mode: OFF
我試圖像這樣一行來做:
logMessage("Permissive mode: " + (isPermissive == true) ? "ON" : "OFF" );
我可以做完整的if / else語句,並為ON / OFF設置一個單獨的變量,但試圖使其簡短一些...
只需使用
logMessage("Permissive mode: " + ((isPermissive) ? "ON" : "OFF"));
您是否需要在條件賦值運算符周圍加括號? :
? :
因為前面有一個加法運算符,並且+
的優先級比? :
? :
。
不帶括號, "Permissive mode: " + (isPermissive == true) ? "ON" : "OFF"
"Permissive mode: " + (isPermissive == true) ? "ON" : "OFF"
等價於("Permissive mode: " + (isPermissive == true)) ? "ON" : "OFF"
("Permissive mode: " + (isPermissive == true)) ? "ON" : "OFF"
所述的結果+
與字符串的操作數的加法運算符是不是一個boolean
,所以編譯器將理所當然抱怨上的表達。
如果要首先對運算符進行運算,則需要在運算符前使用括號將其括起來:
logMessage("Permissive mode: " + (isPermissive ? "ON" : "OFF") );
您可以使用包裝logMessage的新方法對其進行分解:
public void myLogMessage(String message, boolean flag) {
logMessage(message + ": " + (flag ? "ON" : "OFF"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.