Урок 5. Оператор IF в С++

Очень часто в программировании возникает необходимость создания определенной команды, удовлетворение условия которого будет являться определенное действие. Операторы, используемые в подобном случае, называются операторами условия(ветвления). Выглядит конструкция так:

1
2
if (условие) оператор1; 
else оператор2;

Поле условие должно возвращать переменную bool-евского типа: при значение условия «true» выполняется первое действие-оператор1 ; при значении условия «false» выполняется второе действие-оператор2.
Допустим, если Вам следует написать программу, которое выводит «yes», если заданная переменная больше 10, и выводит «no» в противном случае, то код Вашей программы будет иметь следующий вид:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
int a;
cin >> a;
if (a>10) cout << "yes";
else cout << "no";

return 0;
}

Приведенный пример с использованием оператора ветвления является основным. Если Вам требуется проверка соответствия лишь одному условию, можно опустить оператор else. В таком случае отрывок кода будет выглядеть так:

1
2
3
int a;
cin >> a;
if (a<60) cout << "oh yeah";

Теперь попробуем реализовать задачу среднестатистического продавца в вечер пятницы.
Нам требуется узнать, сколько лет покупателю, и на основе его возраста предложить предельно допустимое содержание алкоголя в напитке.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
using namespace std;
int main()
{
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    int b;
cin >> b;
if (b>18) 
    if (b<21) cout << "Выбирайте напиток не более 15 градусов крепости";
    else cout << "Выбирайте напиток любой";
return 0; 
}

Обучающий смысл данного примера заключается в том, что написанный оператор условия else относится к последнему заданному условию if(!). Это правило очень важно при использовании разветвленных условий.
Существует также тернарная запись оператора If:

1
переменная = условие ? значение1 : значение2 ;

Преимущество данного вида записи заключается в ёмкости.
Рассмотрим пример нахождения наибольшего из двух чисел. Сравним написание кода с использованием простой записи(I) оператора if и тернарного оператора условия:
I:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
cin >> a >> b;
if (a>b) c=a;
else c=b;
cout << c;
return 0;
}

II:

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
cin >> a >> b;
= a>b?a:b;
cout << c;
return 0;
}

Если в ответе не видно разницы, то зачем писать больше?! :)

Категория: C++ | Добавил: ghost_mod (29.09.2016)
Просмотров: 360 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: