Показать сообщение отдельно

  #2  
Старый 07.08.2009, 22:00
horlyk
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме:
233095

Репутация: 21
Отправить сообщение для horlyk с помощью ICQ
По умолчанию

Цитата:
Сообщение от N5W  
почему == ? чем оно лучше ? )
Ты переменной значение как присваиваешь?
int a = 3;
А проверяешь на равенство как?
a == 3;

следовательно в условии ты не проверяешь на равенство значение переменной со значением, которым нужно сравнивать. Ты присваиваешь переменной новое значение.
этот вариант правильный:
Код:
int a = 3;
if( a == 3)
     cout << "a = 3\n";
else
    cout << "a != 3";
а этот вариант не правильный:
Код:
int a = 3;
if( a = 3)
     cout << "a = 3\n";
else
    cout << "a != 3";
Тут ты делаешь совсем другую вещь. Ты присваиваешь
переменной а новое значение. Следовательно, пока ты в if() будешь присваивать положительные числа, или числа меньше нуля, будет выполняться именно if(), а не else. Но если ты в if() присвоишь значение переменной 0, то будет выполняться оператор else.
Как уже написал razb выше - что бы в дальнейшем такую невнимательность отсекать на этапе компиляции константы следует писать слева.

То есть лучше сделать вот так:
Код:
const int a = 3;
if( a == 3)
     cout << "a = 3\n";
else
    cout << "a != 3";
В таком случае ты точно не ошибешься. Но это пример только для того, чтоб привычка выработалась писать именно знак проверки на равенство, а не присвоения в условных операторах.

Последний раз редактировалось horlyk; 07.08.2009 в 22:05..
 
Ответить с цитированием