我试图帮助有问题的朋友,他问我如何使用Nicomachus方法制作3个数字的GCD。一切都很顺利,直到我试图进入这个状态:
while (a!=b && b!=c && a!=c)
但问题是它只会执行一次。我改成了这个:
while (a!=b && b!=c)
我知道它导致同样的事情,但我只是想知道为什么第一个不能工作?我不能在相同条件下添加2 &&
吗?
答案 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 }),所以添加第三个条件与否并没有任何区别。但正如我所表明的那样,对于不平等也是如此。