如何将Java中的这段if-else代码简化为单语句?
简化Java if-else为一行语句的方案
嘿,这事儿好办!咱们可以利用Java的三元运算符配合逗号表达式,把这段if-else逻辑压缩成一行,完全避开if-else结构。先理清楚原代码的核心逻辑:
- 当
a为true时:打印"if " + (isEmpty && !b),同时把isEmpty && !b赋值给result - 当
a为false时:打印"else " + !b,同时把!b赋值给result
简化后的完整代码
public static void main(String[] args) { boolean a = false, b = false, isEmpty = false; boolean result = (a ? (System.out.printf("if %b%n", isEmpty && !b), isEmpty && !b) : (System.out.printf("else %b%n", !b), !b)); System.out.println(result); }
关键特性说明
- 三元运算符:
a ? expr1 : expr2是if-else的表达式级替代,判断a的布尔值后,执行对应分支的表达式并返回结果,刚好满足咱们的赋值需求。 - 逗号表达式:在括号里用逗号分隔多个操作时,Java会依次执行所有操作,最后返回最后一个操作的值。这样就能把打印和赋值两个动作合并到同一个分支里,实现“一行搞定”的效果。
这个写法和原代码的执行逻辑完全一致,没有改变任何业务行为,只是把if-else结构转换成了更紧凑的表达式形式。
内容的提问来源于stack exchange,提问作者S Fasda
相关产品推荐
相关产品推荐

