如何通过一行代码比较三个变量并返回布尔值?
一行实现带逻辑与的布尔返回判断
嘿,完全懂你那种想把逻辑压缩成一行又怕写错的心情!先给你拆解下你看到的那个代码语法,再直接给你想要的解决方案:
先搞懂你看到的三元运算符
你碰到的return var1 != null ? var2 : 0;是三元条件运算符,语法结构是:
条件表达式 ? 条件为true时返回的值 : 条件为false时返回的值
它本质就是单行版的if-else,适合简单的二分支逻辑,确实比写多行if(){...}else{...}清爽很多。
你的需求:一行返回逻辑与的布尔结果
你的需求是判断「var1大于var2 + 其他相关条件」,然后返回布尔值——这其实比三元运算符更简单!因为逻辑与(&&)本身就会返回布尔值,直接把整个判断表达式放在return后面就行。
举个具体例子:假设你说的「相关条件」是var3 < 100,那一行代码就是:
return var1 > var2 && var3 < 100;
(注:这里用Java举例,其他语言比如JavaScript、C#语法几乎一致)
为什么这么写可行?
逻辑与&&是短路运算:
- 先判断
var1 > var2,如果不成立(false),直接返回false,不会再判断后面的条件 - 如果
var1 > var2成立(true),才会继续判断后面的条件,最终返回整个表达式的布尔结果
如果有更多条件,直接继续用&&串联就行,比如再加一个var4 != 0:
return var1 > var2 && var3 < 100 && var4 != 0;
这样完全满足你的需求,比写多行if-else简洁高效太多!
内容的提问来源于stack exchange,提问作者stringExchange
相关产品推荐
相关产品推荐

