Сообщение от
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";
В таком случае ты точно не ошибешься. Но это пример только для того, чтоб привычка выработалась писать именно знак проверки на равенство, а не присвоения в условных операторах.