С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/37: Рейтинг темы: голосов - 37, средняя оценка - 4.54
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Связка операторов else if и if else

04.08.2015, 18:02. Просмотров 7133. Ответов 15
Метки нет (Все метки)

оператор else if и if else какая между ними разница?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2015, 18:02
Ответы с готовыми решениями:

Задача с использованием логических операторов и операторов ветвления
Вот вам задачка, чтоб голову поломать :D Вася работает программистом и...

Требуется разработать две программы (или одну с двумя циклами) с использованием операторов повтора (циклических операторов) WHILE и REPEAT
расчитать \sum_{\propto }^{n=1}{-1}^{n}\frac{1}{n(2n+1)} c точностью \alpha...

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. ...

Связка по id
есть две таблицы: 1) таблица вопросов: id вопроса, сам вопрос 2) таблица...

Связка БД
В общем суть проблемы вот в чём: сделал я связку БД с Access-овским...

15
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
04.08.2015, 18:05 2
C++
1
2
3
4
int x;
...
if (x) // если х не окажется равен истине, произойдет просто пропуск данного оператора
  cout << 1;
C++
1
2
3
4
5
6
int x;
...
if (x) // если x - истина то,
  cout << 1; // напечатай единицу
else // иначе, напечатай двойку
  cout << 2;
else переводится как "иначе"
1
castaway
Эксперт С++
4934 / 3039 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
04.08.2015, 18:07 3
Нет таких операторов. Есть отдельно взятые ключевые слова if и else.
1
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
04.08.2015, 18:10 4
castaway, зачем же так придираться к словам, видно же, что пацанчик токо сел изучать язык
0
castaway
Эксперт С++
4934 / 3039 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
04.08.2015, 18:13 5
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
пацанчик токо сел
Вопросы слишком примитивные. 14-тем по C++. Не вижу желания разобраться самостоятельно.
0
Croessmah
04.08.2015, 18:55
  #6

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Не вижу желания разобраться самостоятельно.
пффф... бяка :-/ :jokingly:

0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
04.08.2015, 19:29 7
Лучший ответ Сообщение было отмечено Aqua77 как решение

Решение

else if - это не оператор
здесь
else - начало второй (необязательной) части предыдущего оператора if
if - новый вложенный оператор if

разбери, что будет в a, если условия истинны/ложны/одни истинны, другие ложны

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
a=0;
if (условие1) 
{    //действия, если условие1 истинно
      a=1;
}
else 
{    //действия, если условие1 ложно
      if (условие2) 
      {
           a=2;
      }
      else 
      {
           if (условие3)    
           {
                a=3;
           }
      }
}
// а вот то же самое, только смотрится компактнее:
a=0;
if (условие1) 
      a=1;
else      if (условие2) 
      a=2;
...
else      if (условиеN)    
      a=N;
2
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
04.08.2015, 19:44  [ТС] 8
Вот вот оно. Понял теперь! В моей литературе написали слитно else if и не объясняют что это. Откуда мне знать может и есть такой оператор.
0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
04.08.2015, 19:55 9
Представь, что в первом варианте не 3 условия, а 33. Сколько времени надо разбираться в дереве if-else ?
Второй вариант - блок кода в привычном виде. Программист смотрит на него и сразу знает что в "а" будет номер первого истинного условия (или 0, если все условия ложны).
По-другому: выполнится только та часть, которая относится к первому истинному условию.
0
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
04.08.2015, 20:03  [ТС] 10
Перемена мест операторов и условий не имеет значения?
0
Sayshall_
3 / 3 / 1
Регистрация: 04.08.2015
Сообщений: 21
04.08.2015, 20:09 11
Лучший ответ Сообщение было отмечено Aqua77 как решение

Решение

Каждому оператору if соответствует только один оператор else. Совокупность этих операторов — else if означает, что если не выполнилось предыдущее условие, то проверить данное. Если ни одно из условий не верно, то выполняется тело оператора else.
Если после оператора if, else или их связки else if должна выполняться только одна команда, то фигурные скобки можно не ставить.
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 #include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    double num;
 
    cout << "Введите произвольное число: ";
    cin >> num;
 
    if (num < 10) // Если введенное число меньше 10.
        cout << "Это число меньше 10." << endl;
    else if (num == 10)
        cout << "Это число равно 10." << endl;
    else  // иначе
        cout << "Это число больше 10." << endl;
 
    return 0;
}
0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
04.08.2015, 20:13 12
Имеет. Выполнится тот блок, у которого условие истинно, а все условия выше - ложны. Условия и операторы ниже этого блока просматриваться не будут. Поэтому если в коде
C++
1
2
3
4
5
6
7
a=0;
if (x<2) 
      a=2;
else      if (x<4) 
      a=4
else      if (x<6)    
      a=6;
переставить любые два условия, то которое станет ниже, никогда не сработает.

Если все условия - сравнение с разными значениями (типа chr=='A', chr=='B'), порядок не важен.
1
hoggy
Заблокирован
Эксперт С++
04.08.2015, 20:16 13
Цитата Сообщение от zer0mail Посмотреть сообщение
else if - это не оператор
Цитата Сообщение от zer0mail Посмотреть сообщение
C++
1
2
3
4
5
6
if (x<2) 
* * * a=2;
else * * *if (x<4) 
* * * a=4
else * * *if (x<6) * *
* * * a=6;
вы противоречите сами себе
0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
04.08.2015, 20:23 14
Отнюдь и ТС меня понял Правда, забыл ';' поставить после a=4;
1
vorobdjek
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 4
12.03.2017, 17:34 15
Пожалуйста подскажите что здесь не так. Усли кому не лень, напишите как правильно.

#include <iostream>
using namespace std;
int main()
{
int value;
cout << "vvedite ingridienti: " << endl;
cin >> value;
if (value == 'margarin dlia vipecki')
cout << "ingridient 2: " << endl;
cin >> value ;
if (value == 'smetana')
cout << "ingridient 3: " << endl;
cin >> value;
if (value == 'muka')
cout << "ingridient 4: " << endl;
cin >> value ;
if (value == 'jajca')
cout << "ingridient 5: " << endl;
cin >> value ;
if (value == 'sahar')
cout << "ingridient 6: " << endl;
cin >> value;
if (value == 'moloko')
cout << "ingridient 7: " << endl;
cin >> value ;
if (value == 'maslo slivocnoe')
cout << "tort napoleon: " << endl;

if (value != )
cout << "nenaideno: " << value << endl;



return 0;
}
0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
12.03.2017, 18:08 16
В лом текст отформатировать?
Цитата Сообщение от vorobdjek Посмотреть сообщение
if (value != )
это что за фигня?
0
12.03.2017, 18:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2017, 18:08

Связка документов в 1С
Здравствуйте! Помогите разобраться с простым вопросом. Есть два документа...

связка с sql
Всем, привет. На форме кинут stripmenu. Можно ли сделать чтобы все пункты...

Связка классов
Есть в общем у меня готовый код, но в нем не работает расчет цены в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru