
- •1.1.Схема простой программы
- •1.2.Основы записи программ
- •1.2.1.Имена
- •1.2.2.Комментарии
- •1.2.3.Переменные и константы, объявления и присваивания
- •1.3.Основные конструкции: операторы, выражения, операции, операнды
- •2.1.Операторы объявления
- •2.2.“Линейные” операторы
- •2.3.Операторы управления программой
- •2.3.1.Условный оператор if (if-else)
- •2.3.2.Оператор выбора switch
- •2.3.3.Оператор цикла while
- •2.3.4.Оператор цикла do–while
- •2.3.5.Оператор цикла for
- •2.3.6.Операторы перехода break, continue и goto
- •3.1.Операция присваивания
- •3.2.Объединение действий с присваиванием
- •3.3.Операции увеличения и уменьшения на 1
- •3.4.Трактовка истинности
- •3.5.Операция ?
- •3.6.Операция «запятая»
- •3.7.Операция sizeof
- •4.1.Объявление, определение, параметры и вызов функции
- •4.2.Выход из функции
- •4.3.Организация памяти при выполнении программы
- •4.4.Правила видимости имен для функций
- •4.5.Одинаковое именование нескольких функций (перегрузка функций)
- •4.6.Параметры функций по умолчанию
- •4.7.Передача параметров функции по адресу
- •4.8.Библиотека стандартных функций
- •6.1.Целые числа
- •6.2.Вещественные числа
- •6.3.Логические значения
- •6.4.Символы
- •6.5.Преобразование типов
- •6.6.Вычисление значения выражения
- •7.1.Массивы
- •7.1.1.Одномерные массивы
- •7.1.2.Многомерные массивы
- •7.1.3.Строки
- •7.1.4.Массивы с неопределенным размером (безразмерные массивы)
- •7.2.Перечисления
2.3.2.Оператор выбора switch
Хотя любые комбинации условий можно выразить с помощью операторов if (if-else), довольно часто запись становится неудобной и запутанной. В тех случаях, когда необходимо выбрать соответствующие действия для ограниченного набора возможных значений целочисленного выражения, можно использовать оператор выбора switch. Пример:
switch (n) {
case 1:
. . .
break;
case 2:
. . .
break;
. . .
default:
. . .
}
При выполнении оператора switch значения констант, указанных в метках case, сравниваются со значением выражения, указанного в скобках заголовка оператора, в данном случае – со значением переменной n. Если совпадение обнаружено, выполняются операторы, следующие за соответствующей меткой, если нет – выполняются операторы, записанные после метки default.
Выполнение оператора switch заканчивается по достижении либо оператора break, либо конца оператора switch. Метка default может отсутствовать, отсутствие default эквивалентно записи
default:
; // пустой оператор, не выполняющий никаких действий
Следует обратить внимание на то, что прекращение выполнения действий для значений, совпадающих со значениями меток case, вызывает именно оператор break, а не достижение новой метки case. Последнее обстоятельство позволяет сокращать запись в тех случаях, когда для нескольких значений нужно выполнить одинаковые действия:
switch (m) {
case 1:
case 3:
case 5:
cout << "!!!";
. . .
}
Следует отметить, что в качестве значений в метках case могут использоваться только целые числовые константы или символы, а также константные (не содержащие переменных) выражения, причем значения, используемые в метках case в пределах одного оператора switch, не должны повторяться. Кроме того, в одной метке case нельзя указать диапазон значений. Это означает, что если, например, для пяти последовательных целых числовых значений необходимо выполнить одни и те же действия, в операторе switch придется записать пять отдельных меток case, четыре из которых будут “пустыми”.
2.3.3.Оператор цикла while
Операторы цикла реализуют один из важнейших способов вычислений в программировании – повторение (итерацию). Он состоит в том, что определенная последовательность действий (тело цикла) повторяется до достижения некоторого условия или заданное число раз.
Первая форма цикла – цикл с предусловием, в котором проверка условия предшествует выполнению действий. Для записи такого цикла в C++ может использоваться оператор while. Его формат:
while ( условие )
тело_цикла
Здесь условие, как и в условном операторе if, – это выражение, которое принимает логическое значение true (“истина”) или false (“ложь”). Телом цикла может являться простой или составной оператор (блок). Выполнение операторов, составляющих тело_цикла, повторяется до тех пор, пока значением условия является true. Значение выражения, составляющего условие, заново вычисляется перед каждой итерацией. Если первое же вычисленное значение этого выражения – false, тело цикла не выполнится ни разу.
2.3.4.Оператор цикла do–while
Второй формой цикла является цикл с постусловием, где проверка условия следует за выполнением действий. Средством записи этого цикла в C++ является оператор do-while. Он имеет формат
do
тело_цикла
while ( условие );
Отличие этого оператора от оператора while заключается в том, что здесь условие проверяется после выполнения тела цикла, поэтому тело цикла обязательно выполнится хотя бы раз.