程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了双重结构相等运算符:if(a == b == c)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决双重结构相等运算符:if(a == b == c)?

开发过程中遇到双重结构相等运算符:if(a == b == c)的问题如何解决?下面主要结合日常开发的经验,给出你关于双重结构相等运算符:if(a == b == c)的解决方法建议,希望对你解决双重结构相等运算符:if(a == b == c)有所启发或帮助;

您不能使用任何类型来执行此操作,但是Boolean因为此比较链将从左侧到右侧进行评估。第一个比较将简化为truefalse必须与链中的第三个值进行比较的值(并且此检查的结果将与第四个值进行比较,依此类推,直到链的末尾)。至于原始值,您只能比较相同类型的原始值(例如Boolean和Boolean将起作用,而double和Boolean将不起作用)-这就是为什么只能使用Booleans的原因- 因为==返回的是相同的值输入为链中所有值。 这里存在危险:所有比较链的结果都不等于true您提供的所有值都等于时true。您可以从第二个输出中看到它:true== false==false提高了true,如果您从左到右评估它(在程序执行过程中发生),这是正确的结果,但是如果 您认为 必须同时评估这个比较链,这似乎是错误的 。正确的方法是两个执行两个显式比较: __

if (a == b && b == C) {
    // do something
}

解决方法

我今天偶然地写了一些代码,当Eclipse一次不对我大吼时,我感到很惊讶。该代码对结构相等运算符(==)有双重使用,类似于下面的if(a==b==C)结构。

public class tripleEqual {
    public static void main(String[] args) {
        Boolean[] a = { true,false };
        Boolean[] b = { true,false };
        Boolean[] c = { true,false };

        for (int aDex = 0; aDex < 2; aDex++) {
            for (int bDex = 0; bDex < 2; bDex++) {
                for (int cDex = 0; cDex < 2; cDex++) {
                    if (a[aDex] == b[bDex] == c[cDex]) {
                        System.out.printf("Got a==b==c with %d %d %d\n",aDex,bDex,cDeX);
                    }
                }
            }
        }

    }
}

输出是

Got a==b==c with 0 0 0
Got a==b==c with 0 1 1
Got a==b==c with 1 0 1
Got a==b==c with 1 1 0

玩耍时,我注意到我if(a==b==C)除了不能使用任何类型Boolean。从这个布尔表达式是

( A'. B'. C') + ( A'. B . C ) + ( A . B'. C ) + ( A . B . C')

简化为(A=B).'C + (A<>B).C

因此,忽略副作用if(a==b==C)等于if(a==b && !C) || (a!=b && C))

谁能解释该if(a==b==C)语法如何暗示这一点?

编辑1:

在许多人解释了左联想性之后,我发现我的困惑在哪里。通常,我将“ 1”表示为true,将“
0”表示为false,但是在上述测试中,我最小化的真值表/输出中,我将“ 0”表示为true,将“ 1”表示为false。表达式的取反( A'. B'. C') + ( A'. B . C ) + ( A . B'. C ) + ( A . B . C')(A=B)=C

@H_674_91@

大佬总结

以上是大佬教程为你收集整理的双重结构相等运算符:if(a == b == c)全部内容,希望文章能够帮你解决双重结构相等运算符:if(a == b == c)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。