- •Алфавит языка
- •Идентификаторы
- •Ключевые слова
- •Знаки операций
- •Константы
- •Комментарии
- •Концепция типа данных
- •Простые типы данных
- •Целый тип (int)
- •Символьный тип (char)
- •Расширенный символьный тип (wchar_t)
- •Логический тип (bool)
- •Типы с плавающей точкой (float, double и longdouble)
- •Предварительные замечания о функциях ввода/вывода
- •Переменные
- •Операции
- •Выражения
- •Оператор "выражение"
- •Операторы ветвления Условный оператор if
- •Оператор switch
- •Цикл с предусловием (while)
- •Цикл с постусловием (dowhile)
- •Цикл с параметром (for)
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •Инициализация указателей
- •Операции с указателями
- •Переименование типов (typedef)
- •Глобальные переменные
- •Возвращаемое значение
- •Передача массивов в качестве параметров
- •Передача имен функций в качестве параметров
- •Параметры со значениями по умолчанию
- •Функции ввода/вывода
- •Открытие потока
- •Ввод/вывод в поток
- •Закрытие потока
- •Функции работы со строками и символами
- •Математические функции
- •Директива #include
- •Директива #define
Оператор switch
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:
switch ( выражение ){
case константное_выражение_1: операторы_1;
case константное_выражение_2: операторы 2;
case константное_выражение_n: операторы n;
[default: операторы ;]}
Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается операторам, помеченным константным выражением, значение которого совпало с вычисленным, после чего последовательно выполняются все остальные ветви, если выход из переключателя явно не указан.
Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).
Пример #2. |
Пример (программа реализует простейший калькулятор на 4 действия): #include <iostream.h> 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;} |
Выход из переключателя обычно выполняется с помощью операторов break или return.
Операторы цикла
Операторы цикла используются для организации многократно повторяющихся вычислений.
Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, блока модификациипараметра цикла и проверки условия выхода из цикла (рис. 1), которая может размещаться либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием).
Один проход цикла называется итерацией. Переменные, принудительно изменяющиеся в цикле и использующиеся при проверке условия выхода из него, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся на целое число на каждой итерации, называются счетчиками цикла.
Нельзя передавать управление извне внутрь цикла. Выход из цикла возможен как при выполнении условия выхода, так и по операторам break, return или безусловного перехода.
Цикл с предусловием (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;//модификация } } |