两个 && 在 while 条件下?

Two && in a while condition?

我正试图帮助一个朋友解决问题,他问我如何使用 Nicomachus 方法制作 3 个数字的 GCD。在我尝试进入这种情况之前一切都很顺利:

while (a!=b && b!=c && a!=c)

但问题是它只会执行一次。我把它改成这样:

while (a!=b && b!=c)

我知道结果是一样的,但我只是想知道为什么第一个不起作用?我不能在相同条件下添加 2 && ?

您当然 可以 拥有 2 个 && 相同的条件 - 您可以拥有任意数量。循环停止的事实取决于其他因素。

顺便说一句,如果你有 a=10、b=20、C=10,第一个条件 (while (a!=b && b!=c && a!=c)) 将停止(因为 a != c 将为假),但是第二个 (while (a!=b && b!=c)) 将继续。大概是这样吧。

将 3 个条件转换为 2 个可以在相反的情况下完成,也就是说,如果您想确保它们都相等:a ==b && b == c 自动暗示 a == c(请参阅 Transitive relation of equality), 所以添加或不添加这第三个条件没有任何区别。但正如我所展示的那样,不平等情况并非如此。