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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
[C++] Return
4 / 4 / 1
Регистрация: 11.09.2012
Сообщений: 110
#1

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

22.01.2014, 11:34. Просмотров 275. Ответов 6
Метки нет (Все метки)

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 при любом условии?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
866 / 446 / 132
Регистрация: 16.02.2010
Сообщений: 2,665
Записей в блоге: 27
22.01.2014, 11:37     Сравнить два кода с условием #2
c=2; произойдет в любом случае, так как эта строка вне цикла находится.
Операторные скобки не обязательно ставить, если после проверки условия одна строка. Если более - тогда нужны скобки. Потому разницы между первым и вторым вариантом никакой.
monolit
180 / 180 / 21
Регистрация: 24.03.2011
Сообщений: 647
Завершенные тесты: 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
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,941
Завершенные тесты: 1
22.01.2014, 11:40     Сравнить два кода с условием #4
[C++] Return, Есть кое какая разница. Второй вариант ошибки будет выдавать, так как там ; не хватает в двух местах.
Тамика
Котовчанин
 Аватар для Тамика
866 / 446 / 132
Регистрация: 16.02.2010
Сообщений: 2,665
Записей в блоге: 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++ Сравнить два контейнера set
Сравнить два вектора размерности n C++
Сравнить два массива одинаковой длины C++
C++ Сравнить два подмножества в матрице
Сравнить два массива C++

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

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

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