Форум программистов, компьютерный форум CyberForum.ru

Сравнить два кода с условием - C++

Восстановить пароль Регистрация
 
[C++] Return
4 / 4 / 1
Регистрация: 11.09.2012
Сообщений: 110
22.01.2014, 11:34     Сравнить два кода с условием #1
C++
1
2
3
if(a == 1) b = 2;
else b = 3;
c = 2;
C++
1
2
3
if(a== 1) {  b = 2 }
else { b = 3 }
c = 2;
Тоже самое произойдет?
Или в 1 варианте в случае неверного условия b = 3, c = 2 а во 2 варианте в случае неверного условия b = 3 и c = 2 при любом условии?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 11:34     Сравнить два кода с условием
Посмотрите здесь:

C++ Сравнить два введённых слова
C++ Сравнить логически два массива
Сравнить два любых файла на С++ C++
C++ Как сравнить два символа?
C++ Сравнить два поля узла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
22.01.2014, 11:37     Сравнить два кода с условием #2
c=2; произойдет в любом случае, так как эта строка вне цикла находится.
Операторные скобки не обязательно ставить, если после проверки условия одна строка. Если более - тогда нужны скобки. Потому разницы между первым и вторым вариантом никакой.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
22.01.2014, 11:38     Сравнить два кода с условием #3
Если несколько команд относится к блоку, тогда их заключать в скобочки. Если команда одна - скобочки не обязательны. Т.е. у тебя написано сейчас два альтернативных варианта записи.

C++
1
2
3
4
5
if(a== 1) b = 2; //одна команда
else { //а тут две
b = 3;
c = 2;
}
Но не забывайте ; ставить...
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
22.01.2014, 11:40     Сравнить два кода с условием #4
[C++] Return, Есть кое какая разница. Второй вариант ошибки будет выдавать, так как там ; не хватает в двух местах.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
22.01.2014, 11:45     Сравнить два кода с условием #5
Цитата Сообщение от solar_wind Посмотреть сообщение
[C++] Return, Есть кое какая разница. Второй вариант ошибки будет выдавать, так как там ; не хватает в двух местах.
Да, не обратила внимания. Спасибо.
[C++] Return
4 / 4 / 1
Регистрация: 11.09.2012
Сообщений: 110
22.01.2014, 20:05  [ТС]     Сравнить два кода с условием #6
Цитата Сообщение от solar_wind Посмотреть сообщение
[C++] Return, Есть кое какая разница. Второй вариант ошибки будет выдавать, так как там ; не хватает в двух местах.
Да, тоже не обратил внимания, код для примера быстро набросал, пропустил ;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 20:29     Сравнить два кода с условием
Еще ссылки по теме:

Как сравнить два слова C++
C++ Сравнить два контейнера set
Сравнить два вектора размерности n C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
22.01.2014, 20:29     Сравнить два кода с условием #7
Фишка в том, что если не указывать фигурных скобок, то в тело цикла или условия помещает лишь одну инструкцию, следующую после объявления конструкции. Это может порождать ошибки, когда человек пишет несколько инструкций без фигурных скобок (чаще всего даже с одинаковыми отступами) и ожидает их выполнения в теле цикла/условия, а не "вне" его.
Далее - ваш пример лучше переписать с использованием тернарного оператора:
C++
1
2
b = (a == 1 ? 2 : 3);
c = 2;
Yandex
Объявления
22.01.2014, 20:29     Сравнить два кода с условием
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru