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