美文网首页
我与 -三元表达式和|| -的恩怨

我与 -三元表达式和|| -的恩怨

作者: 小名源治 | 来源:发表于2022-11-27 15:01 被阅读0次

今天刷力扣遇到的坑,三元表达式和||组合在一起,发生了一个奇妙的BUG,让我找半天
这题

首先复习一下三元表达式

boolean?true:false
举个例子:

int i = true ? 1 : 2;  //i为1
int j = false ? 1 : 2;  //j为2

再复习一下||运算(注意是|| 不是|

总结来说就是遇真则真,全假才假

Boolean boo = false || true;  //true
Boolean boo = true || false; //true
Boolean boo = false || false;  //false

现在将两个东西合并

Boolean boo = true ? false : true || false || true;
理论上来说它应该是false || false || true ;最终结果应该是true
但是实际运行效果却不一样,它的结果居然是false。

image.png

就是这里给我坑了,仔细研究后我猜测,三元表达式的判断语句结果就是true,然后||遇到true就直接为真,不再去进行后面的语句进行判断了。

为了验证猜测,我进行以下验证。它证明了我的猜想是正确的,它误将三元表达式判断的值当作了||条件判断的值

image.png

解决办法

其实很简单,将三元表达式用括号包起来,他就不会发生误判了


image.png

相关文章

网友评论

      本文标题:我与 -三元表达式和|| -的恩怨

      本文链接:https://www.haomeiwen.com/subject/yzzhfdtx.html