1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24

Зачем используют конструкцию в длинных ветвлениях else if, если можно просто использовать один if

28.08.2014, 16:02. Показов 1213. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый День!
У меня очень простой вопрос.
Зачем используют конструкцию в длинных ветвлениях else if, если можно просто использовать один if , вот пример :
C++
1
2
3
4
5
6
7
8
9
int a;
    cin >> a;
    if (a == 13)
       a *= 2;
    else if (a == 25)
        a *= a;
    else if (a == 45)
        a += a;
    cout << a<<endl;
Когда можно сделать просто
C++
1
2
3
4
5
6
7
8
9
 int a;
    cin >> a;
    if (a == 13)
       a *= 2;
     if (a == 25)
        a *= a;
     if (a == 45)
        a += a;
    cout << a<<endl;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2014, 16:02
Ответы с готовыми решениями:

Зачем используют конструкцию !()
например var isFirefox = ! ! ( navigator . vendor &amp;&amp; navigator . vendorSub ) ; зачем !! - отрицание отрицания... мы таким образом...

Зачем вообще нужно слово NULL если можно просто написать 0?
Для чего нужны все эти слова как например NULL, EOF? Вместо них можно просто цифры написать.

Зачем учить указатели, если можно использовать вектор?
Не могу понять, зачем учить указатели если в большинстве случаев для выделения памяти намного легче использовать vector?

10
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,980
Записей в блоге: 32
28.08.2014, 16:08
По моим заблуждениям, конструкции "else if" в смысле единой конструкции "elseif" с С и С++ нет. Есть конструкция "else", после которой может идти что угодно, в том числе и новый "if". А наличие конструкции "else" очень удобно, если бы была "elseif", было бы имхо еще удобнее.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2221 / 1423 / 417
Регистрация: 16.05.2013
Сообщений: 3,628
Записей в блоге: 6
28.08.2014, 16:11
Цитата Сообщение от Inkognito21 Посмотреть сообщение
вот пример
Не удачный пример. Рассмотрите такой:
C++
1
2
3
4
5
6
7
8
9
int a;
    cin >> a;
    if (a > 13)
       a *= 2;
    else if (a > 25)
        a *= a;
    else if (a > 45)
        a += a;
    cout << a<<endl;
и
C++
1
2
3
4
5
6
7
8
9
int a;
    cin >> a;
    if (a > 13)
       a *= 2;
    if (a > 25)
        a *= a;
    if (a > 45)
        a += a;
    cout << a<<endl;
И пользователь вводит 100.
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.08.2014, 16:17
Чтобы не выполнять лишнюю проверку. Ведь если a ровно 13, то 25 оно равняться никак не может.
1
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
28.08.2014, 17:05  [ТС]
Ilot , да в этом примере действительно разница есть )
castaway, тоже согласен, не подумал я над этим.
Спасибо за ответы!
0
10 / 10 / 0
Регистрация: 18.08.2014
Сообщений: 58
28.08.2014, 17:08
Если использовать только if как у Вас, то не смотря на достигнутое условие, допустим оно достиглось на 2 ифе, проверка будет продолжаться дальше пока не переберуться все ифы. Если же использовать if...else...if и.т.д., то проверка прекратится при достижении нужного условия
0
48 / 37 / 27
Регистрация: 11.02.2014
Сообщений: 134
28.08.2014, 17:50
Цитата Сообщение от Ilot Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
int a;
cin >> a;
if (a > 13)
a *= 2;
else if (a > 25)
a *= a;
else if (a > 45)
a += a;
cout << a<<endl;
какой-то неудачный пример, вроде бы здесь else if никогда не выполнятся? или я ошибаюсь?
и даAlexander_1, правильно говорит, если одни if-ы програма будет дольше работать
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.08.2014, 17:56
D_Ok, запустите сами и проверьте.
0
28.08.2014, 17:58

Не по теме:

S_el, зачем мне запускать, я и так вижу.

0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.08.2014, 18:11
Правильно заметил. else if никогда не выполнится.
0
28.08.2014, 19:07

Не по теме:

D_Ok,я увидел в ваших словах сомнения :

Цитата Сообщение от D_Ok Посмотреть сообщение
вроде бы здесь else if никогда не выполнятся? или я ошибаюсь?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2014, 19:07
Помогаю со студенческими работами здесь

Зачем верстать все с нуля, если можно использовать фреймворки?
Существуют различные фреймворки Bootstrap, Wordpress, Joomla...они упрощают верстку сайта и имеют кучу всего уже готового... Тогда зачем...

Зачем в коде контравариантность если её используют в приведении базового типа к наследуемому?
Доброго времени суток!!! Помогите разобраться почему на экран не выводится &quot;Arial&quot;, 20, &quot;Red&quot;(ковариантность)??? и ещё...

Зачем для перевода строки используют два символа #13#10, если достаточно #13?
кто то мне может объяснить или дать чё почитать? зачем для перевода строки используют два символа #13 и #10 если и #13 вполне хватает...

Можно ли использовать такую конструкцию?
Здраствуйте! Нужно ввести несколько работником тоесть их ФИО и зарплату. Можно ли использовать для ввода ФИО работников двумерный массив...

Как использовать конструкцию Если в запросе (SQL)
Есть такой запрос: (в смысле его код) SELECT * FROM WHERE ((( . BETWEEN () AND ()))); ======================= Мне нужно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
Мысли в слух
kumehtar 29.10.2025
Обнаружил, что мысли лучше писать короткими фразами. Таким образом внимание читателя успевает охватить всю фразу сразу, за один раз, не соскакивая и не прерываясь. А если писать это длинным текстом,. . .
Побитовые операторы в Python
AI_Generated 28.10.2025
Побитовые операторы - это не реликт эпохи, когда каждый байт был на вес золота. Да, сейчас оперативка стоит копейки, но задачи изменились. Вместо экономии памяти приходится решать другие проблемы:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru