Очень часто в программировании возникает необходимость создания определенной команды, удовлетворение условия которого будет являться определенное действие. Операторы, используемые в подобном случае, называются операторами условия(ветвления). Выглядит конструкция так:
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;
c = a>b?a:b;
cout << c;
return 0;
}
|
Если в ответе не видно разницы, то зачем писать больше?!
|