两个&&在一段时间的条件?

时间:2015-04-26 13:10:33

标签: c++ greatest-common-divisor

我试图帮助有问题的朋友,他问我如何使用Nicomachus方法制作3个数字的GCD。一切都很顺利,直到我试图进入这个状态:

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

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

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

我知道它导致同样的事情,但我只是想知道为什么第一个不能工作?我不能在相同条件下添加2 &&吗?

1 个答案:

答案 0 :(得分:0)

你肯定可以在同样条件下有2 && - 你可以拥有任意数量的while (a!=b && b!=c && a!=c)。循环停止的事实取决于其他东西。

顺便说一句,如果你有一个= 10,b = 20,C = 10,第一个条件(a != c)会停止(因为while (a!=b && b!=c)将是假的),但是第二个条件(a ==b && b == c)会继续。可能这就是发生的事情。

将3个条件转换为2个条件可以在相反的情况下完成,也就是说,如果你想确保它们都相等:a == c自动暗示border(参见Transitive relation of equality }),所以添加第三个条件与否并没有任何区别。但正如我所表明的那样,对于不平等也是如此。