gpt4 book ai didi

java - 当我使用 && 运算符比较两组表达式时,是否必须放入内括号?

转载 作者:行者123 更新时间:2023-12-04 20:43:36 25 4
gpt4 key购买 nike

对于这个表达式:

((a == b && b == c) && (a == b || b == c || a == c))

这样写合法吗:

(a == b && b == c && a == b || b == c || a == c)

我想比较第一组和第二组。

a, bc 是整数:

private int a;
private int b;
private int c;

最佳答案

不,不是。 && 是关联的:A && B && CA && (B && C)(A && B) 相同&& C|| 也是:A ||乙|| CA || 相同(B || C)(A || B) || C.

但是,当涉及到两个不同的操作时,它就不起作用了:(A && B) || CA && (B || C) 有很大不同。此外,由于 &&|| 绑定(bind)得更紧密,A && B || C与前者相同,与后者不同。

因此,你的第一个例子

((a == b && b == c) && (a == b || b == c || a == c))

相当于

(a == b && b == c && (a == b || b == c || a == c))

但是你的第二个例子

(a == b && b == c && a == b || b == c || a == c)

相当于一个完全不同的东西:

((a == b && b == c && a == b) || b == c || a == c)

(正如 Kayaman 在评论中指出的那样,在这个特定示例中 是不相关的,因为所有这些都可以简化为 (a == b && b == c),根据您的示例中使用的特定谓词;因此,尽管它们在此特定示例中相同,但您仍然应该理解一般使用的关联性和优先级的概念。)

关于java - 当我使用 && 运算符比较两组表达式时,是否必须放入内括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59874355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com