- •Структура программы на языке с
- •Int main(список параметров)
- •Библиотека и компоновка
- •Словарь терминов
- •Выражения
- •Переменные
- •Инициализация переменных
- •Константы
- •Строковые константы
- •Специальные символьные константы
- •Оператор присваивания
- •Множественные присваивания
- •Арифметические операции
- •Операции увеличения (инкремента) и уменьшения (декремента)
- •Сводка приоритетов операций
- •Выражения
- •Явное преоразование типов: операция приведения типов
- •Операция определения размера sizof
- •Операторы
- •Int a, b, c; // объявление переменных
- •Пробелы и круглые скобки
- •Логические значениия истина (True) и ложь (False) в языке с
- •Условные операторы Оператор if
- •If (выражение) оператор;
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •If(k) statement 2; /* этот if */
- •Int magic; /* магическое число */
- •Оператор выбора - switch
- •Вложенные операторы switch
- •Цикл for
- •Бесконечный цикл
- •Варианты цикла for
- •Бесконечный цикл
- •Цикл for без тела цикла
- •Цикл while
- •Случае цикл требует повторить ввод. Цикл do-while
- •Цикл do-while часто используется в функциях выбора пунктов меню. Если пользователь вводит допустимое значение, оно возвращается в качестве значения функции. В противном
- •Оператор перехода
- •Оператор return
- •Оператор goto
- •Оператор break
- •Функция exit()
- •Void exit (int код_возврата);
- •Оператор continue
- •Int n, sum; // sum - сумма цифр числа
- •Оператор-выражение
- •Далее адреса Операция получения адреса (&) и раскрытия ссылки (*)
- •Одномерные массивы
Оператор выбора - switch
Оператор выбора switch (часто его называют переключателем) предназначен для выбора ветви вычислительного процесса исходя из значения управляющего выражения. При этом значение управляющего выражения сравнивается со значениями в списке целых или символьных констант. Если будет найдено совпадение, то выполнится ассоциированный с совпавшей константой оператор.
Общая форма оператора switchследующая:
switch (выражение)
{
case постоянная1:
последовательность операторов
break;
case постоянная2:
последовательность операторов
break;
case постоянная3:
последовательность операторов
break;
default:
последовательность операторов;
}
Значение выражения оператора switch должно быть таким, чтобы его можно было выразить целым числом. Это означает, что в управляющем выражении можно использовать переменные целого или символьного типа, но только не с плавающей точкой.
Значение управляющего выражения по очереди сравнивается с постоянными в операторах case.
Если значение управляющего выражения совпадет с какой-то из постоянных, управление передается на соответствующую метку case и выполняется последовательность операторов до оператора break. Если оператор break отсутствует, выполнение последовательности операторов продолжается до тех пор, пока не встретится break (в другой метке) или не кончится тело оператора switch (т.е. блок, следующий за switch).
Оператор default выполняется в том случае, когда значение управляющего выражения не совпало ни с одной постоянной. Оператор default также может отсутствовать. В этом случае при отсутствии совпадений не выполняется ни один оператор.
Оператор case — это метка, однако он не может быть использован сам по себе, вне оператораswitch.
Оператор break — это один из операторов безусловного перехода. Он может применяться не только в оператореswitch,но и в циклах, (см. раздел "Операторы цикла"). Когда в теле оператораswitchвстречается операторbreak, программа выходит из оператораswitchи выполняет оператор, следующий за фигурной скобкой}оператораswitch.
Об операторе switchочень важно помнить следующее:
Оператор switchотличается отifтем, что в нем управляющее выражение проверяется только на равенство с постоянными, в то время как вifпроверяется любой вид отношения или логического выражения.
В одном и том же операторе switchникакие два оператораcase не могут иметь равных постоянных. Конечно, если одинswitchвложен в другой, в их операторахcaseмогут быть совпадающие постоянные.
Если в управляющем выражении оператора switch встречаются символьные константы, они автоматически преобразуются к целому типу по принятым в языке С правилам приведения типов.
Оператор switchчасто используется для обработки команд с клавиатуры, например, при выборе пунктов меню.
В примере программа выводит на экран меню проверки правописания и вызывает соответствующую процедуру:
void menu(void)
{
char ch;
printf("1. Проверка правописания\n");
printf("2. Коррекция ошибок\n");
printf("3. Вывод ошибок\n");
printf("Для пропуска нажмите любую клавишу\n");
printf(" Введите Ваш выбор: ");
ch = getchar(); /* чтение клавиш */
switch(ch) {
case '1':
check_spelling();
break;
case '2':
correct_errors();
break;
case '3':
display_errors();
break;
default :
printf("Ни выбрана ни одна опция");
}
}
С точки зрения синтаксиса, присутствие операторов break внутри switch не обязательно. Они прерывают выполнение последовательности операторов, ассоциированных с данной константой.
Если оператор break отсутствует, то выполняется следующий оператор case, пока не встретится очередной break, или не будет достигнут конец тела оператора switch.