簡體   English   中英

如何使用if / else快捷方式根據布爾值打印字符串

[英]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.

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