Что означает знак равно = в С++ ?Например здесь - while(W = 17) { } Компилятор ошибок не выдал, результаты странные.
Всем спасибо. Вроде логику работы понял. Только с какого перепугу проверяется на неравенство нулю не очень понятно, но ладно.
Всем спасибо. Вроде логику работы понял. Только с какого перепугу проверяется на неравенство нулю не очень понятно, но ладно.
Это операция присваивания. Каждый раз W присваивается 17, какие могут быть ошибки. Если нужно логическое сравнение переменной W и целого 17, то следует писать так.. . while (W == 17)
Присваивание. В C++ присваивание - не оператор, а обычная операция. В данном случае W присваивается значение 17, а потом значение W проверяется на неравенство нулю, что, разумеется, всегда окажется истинным.
Одно равно - это присваивание, два равно подряд - проверка.
С точки зрения компилятора ты написал все правильно, а с точки зрения семантики - ты присвоил В значение 17, проверил в цикле Тру оно или не Тру. А 17 всегда Тру, вот и получил бсконечный цикл :-)))
Получится бесконечный цикл, в котором на каждой итерации значение W будет устанавливаться в "17".
= это знак присваивания, а == знак сравнения "равно ли"
верхня відповідь правильна!
while - Оператор цикла см. http://code-live.ru/post/cpp-loops/
while - условный цикл. а значение переменной (или константы) не ясно.
В С++ сравнение делается через == (два знака равно) . Одинарное тоже компилируется
но результат будет трактован как "присвоить 17" и проверить результат на не равенство 0.
Это типичный подвох на котом ловят новичков в С++