Рассмотрим следующую программу:
/* занятость */#include <stdio.h>main(){ int age =20; while (age++ <= 63) { /* делится ли возраст на 20*/ if((age % 20) == 0) printf(" Вам %d.\n", age); if(age = 63) printf("Вам уже %d.\n",age); }}Мы хотели написать программу, чтобы результат работы программы выглядел так:
Вам 40.Вам 60.Вам уже 63.На самом деле выход будет таким:
Вам уже 63.Вам уже 63.Вам уже 63.и т. д. - до бесконечности. Это произошло, потому что мы ошибочно написали
if(age = 63)вместо
if(age == 63)В операторе
if(age = 63)переменной age присваивается значение 63, т. е. результат этого оператора - истина и выполняется оператор
printf("Вам %d.\n",age);В операторе
while(age++ <= 63)условие выполняется, и программа зацикливается.
Приоритеты операций отношения мы описали в лекции 3.