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

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

作者: 小名源治 | 来源:发表于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