Часть 1
Введение в язык С++
Ветвления
В С++ существует несколько типов ветвлений. Рассмотрим каждый из них. Условный оператор if служит для выбора направления работы программы в зависимости от условий, сложившейся в данной точке программы на момент ее выполнения.
Общая форма записи условного оператора:
if (условие)
{
блок операторов 1;
}
else
{
блок операторов 2;
}
Если на момент выполнения условие истинно, программа передает управление блоку операторов 1 и далее первому оператору за пределами конструкции if-else. При этом блок операторов 2 не выполняется. Если на момент выполнения условие ложно, выполняется блок операторов 2, а блок операторов 1 не выполняется. В таблице 1 указаны простейшие операции отношения.
Таблица 1.
Операция | Запись на С++ |
больше | > |
меньше | < |
больше либо равно | >= |
меньше либо равно | <= |
равно | = = |
не равно | != |
Вложенные операторы условия
Операторы условия могут быть вложенными друг в друга, в соответствии с тем программным алгоритмом, который они реализуют. Допускается произвольная степень их вложенности. Например:
|
|
if (a<=b) // начало внешнего оператора условия
{
if (x!=0) cout<<”x!=0” // начало вложенного оператора условия
else // начало ветви else, относящейся
// к вложенному оператору условия
{
x=1;
y=0;
} // конец ветви else, относящейся
// к вложенному оператору условия
}
else // начало ветви else, относящейся
// к внешнему оператору условия
{
a=b;
cout<<a;
} // конец ветви else, относящейся
// к внешнему оператору условия
Сокращенные варианты записи
При программировании обыденной является ситуация, когда требуется некоторое действие в ответ на сложившиеся условия. Например, если получены неверные исходные данные от пользователя, то выдать сообщение об ошибке и выйти из программы. В таких случаях используется сокращенная запись оператора условия с отсутствующим блоком else. Общая форма записи:
if (условие)
{
блок операторов;
}
Здесь в случае истинности условия управление передается блоку операторов в фигурных скобках. В случае ложности условия этот блок пропускается.
Составные логические выражения
В программировании распространены двойные условия, которые в математике записываются в виде f<b<c. В программе такие условия должны быть переформулированы с использованием простых операций сравнения и логически операций «И», «ИЛИ», «НЕ». Обозначение логических операций приведено в таблице 2.
Таблица 2.
Логическая операция | Знак С++ | Наименование знака |
И | && | двойной амперсанд |
ИЛИ | || | двойная вертикальная черта |
НЕ | ~ (!) | не |
Например:
if ((a>b) && (a>c)) // если а больше b и а больше с
|
|
cout <<"a="<<a; // вывести значение переменной а
else // иначе
{
if ((b>a) && (b>c)) // если b больше а и b больше с
cout <<"b="<<b; // вывести значение переменной b
else
cout <<"c="<<c; // иначе вывести значение
} // переменной с
Оператор Switch используется в том случае, если в программе присутствует большое дерево ветвлений и все ветвления зависят от значения какой-либо одной переменной.
Общий формат записи:
switch (n)
{
case 1:
оператор 1;
break;
case 2:
оператор 2;
break;
case 3:
оператор 3;
break;
…………….
}
где n – целочисленная или символьная переменная;
1, 2, 3 – целочисленная или символьная константа;
Оператор 1 – тело первого case;
Оператор 2 – тело второго case;
Оператор 3 – тело третьего case;
вreak – (прервать) оператор завершает выполнение ветвления switch, если значение переменной в операторе switch совпадает с одним из значений констант, указанных внутри ветвления. Если значение переменной в операторе switch не совпадет ни с одним из значений констант, то управление будет передано в конец switch без выполнения каких-либо действий. В случае отсутствия оператора break управление будет передано операторам, относящимся к другим веткам switch.