Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:
switch (выражение) {
case константное_выражение_1:
операторы_1;
case константное_выражение_2:
операторы 2;
case константное_выражение_n:
операторы n;
[default: операторы;]
}
Пример 2 |
Пример (программа реализует простейший калькулятор на 4 действия): #include <iostream> using namespace std; int main() { int a, b, res; char op; cout << "\nВведите 1й операнд: "; cin >> a; cout << "\nВведите знак операции: "; cin >> op; cout << "\nВведите 2й операнд: "; cin >> b; bool f = true; switch (op) { case '+': res = a + b; break; case '-': res = a - b; break; case '*': res = a * b; break; case '/': res = a / b; break; default: cout << "\nНеизвестная операция"; f = false; } if (f) cout << "\nРезультат: " << res; return 0; } |
Цикл с предусловием (while)
Цикл с предусловием реализует структурную схему, приведенную на рис. 1 (а), и имеет вид:
while (выражение) оператор;Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Если выражение не равно 0 (истинно), выполняется оператор цикла, после чего опять вычисляется выражение. Если при первой проверке выражение равно 0, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему.
|
|
Пример 1 |
Пример (программа печатает таблицу значений функции y = x2 + 1 во введенном диапазоне): #include <stdio.h> int main() { float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |\n"); //шапка таблицы int X = Xn; //начальные установки цикла while (X <= Xk) { //проверка условия выхода printf("| %5.2f | %5.2f |\n", X, X * X + 1); //тело X += Dx; //модификация } return 0;} |
Цикл с постусловием (dowhile)
Цикл с постусловием реализует структурную схему, приведенную на рис. 1(б), и имеет вид:
do операторwhile выражение;Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение не станет равным нулю или в теле цикла не будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.
Пример 2 |
Пример (программа осуществляет проверку ввода): #include <iostream>using namespace std; int main() { char answer; do { cout << "\nКупи слоника! "; cin >> answer; } while (answer!= 'y'); return 0;} |
Цикл с параметром (for)
Цикл с параметром имеет следующий формат:
for (инициализация; выражение; модификации) оператор;Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой.
|
|
Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется.
Пример 3 |
Пример (оператор, вычисляющий сумму чисел от 1 до 100): for (int i = 1, s = 0; i <= 100; i++) s += i; |
Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую.
Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!).
Пример 4 |
Пример (программа печатает таблицу значений функции y = x2 + 1 во введенном диапазоне): #include <stdio.h> int main() { float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |\n"); for (int X = Xn; X <= Xk; X += Dx) printf("| %5.2f | %5.2f |\n", X, X * X + 1); return 0;} |