Два & amp; в какое-то время?

Я пытался помочь другу с проблемой, он спросил меня, как он может сделать GCD из 3 чисел, используя метод Никомаха. Все прошло отлично, пока я не попытался войти в это состояние:

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

Но проблема в том, что он будет выполнен только один раз. Я изменил это в это:

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

Я знаю, что это приводит к тому же самому, но мне было просто интересно, почему первый не может работать? Я не могу добавить 2 && в таком же состоянии?

-4

Решение

Ты конечно Можно есть 2 && в том же состоянии — вы можете иметь столько, сколько хотите. Тот факт, что цикл останавливается, зависит от чего-то другого.

Кстати, если у вас было а = 10, б = 20, с = 10, первое условие (while (a!=b && b!=c && a!=c)) остановится (потому что a != c было бы ложным), но второй (while (a!=b && b!=c)) продолжу. Вероятно, это то, что случилось.

Преобразование 3 условий в 2 можно выполнить в противоположном случае, то есть, если вы хотите убедиться, что все они равны: a ==b && b == c автоматически подразумевает, что a == c (увидеть Транзитивное отношение равенства), так что добавление этого третьего условия или нет не имеет никакого значения. Но это не относится к неравенству, как я показал.

0

Другие решения


По вопросам рекламы [email protected]