Оператор выбора switch в C(Си)

Оператор выбора switch является очень удобной заменой множественного использования операторов if. Оператор switch сравнивает значение одной переменной с несколькими константами. Основной формат для использования оператора множественного выбора switch case показан — ниже. Значение переменной указанной в условии switch сравнивается со значениями, которые следуют за ключевым словом case. Когда значение в переменной, соответствует значению в строке с оператором case, компьютер продолжит выполнение программы с этого места.

switch ( /*variable*/ ) {
case const1:
  /*Тут находится код, который необходимо выполнить, если переменная  variable будет равна const1*/
  break;
case const2:
  /*этот код выполнится, если variable будет равна const2*/
  break;
/*...*/
default:
  /*Код, который выполнится, если ниодно из константых значению не соответствует значение в переменной variable*/
  break;
}

Когда сравниваемое значение в переменной variable совпадет с первым значением оператора case, программа начнет выполнять код, который находится между текущим оператором case и оператором break. Оператор break используется для того, чтобы прерывать ход программы в операторе switch и передавать управление следующему оператору, после switch. Если не использовать оператор break, то, сразу после того, как выполнится один блок кода, программа переключится на выполнения следующего case, даже, если константное значение не будет равно значению в переменной variable.  Поэтому, в операторе выбора switch, блоки кода после case всегда должны предваряться оператором break.

Также стоит обратить в нимание на ключевое слово default, оно не является обязательным, но в то же время оно необходимо для обработки неожидынных ситуаций. Например, когда значение переменной не совпадает ни с одним из значений case, в таком случае выполнится код, который находится в ветке default. Это может быть полезно, в случае, если мы не ожидаем, что ниодно из значений case не совпало со значением переменной в условии switch. В таком случае, мы увидем, что сработал код в ветке default.

Чтобы, все ранее сказанное понять и запомнить, давайте перейдем к рассмотрению простой программы с использованием оператора выбора switch. Хотя, возможно этот пример не самый удачный, но в нем наглядно показывается весь функционал оператора switch.

#include <stdio.h>

int main()
{
    printf( "Что бы сегодня посмотреть?\n" );
    printf( "1. Стрела(Arrow)\n" );
    printf( "2. Сверхъестественное(Supernatural)\n" );
    printf( "3. Ходячие мертвецы(Walking Dead)\n" );
    printf( "4. Выход\n" );
    printf( "Ваш выбор: " );
    int input;
    scanf( "%d", &input );
    switch ( input ) {
        case 1:            /* обратите внимание на двоеточие, точки сзапятой тут нет */
            printf("«His Death Was Just The Beginning»\n");
            break;
        case 2:
            printf("«Scary Just Got Sexy»\n");
            break;
        case 3:
            printf("«Fight the dead. Fear the living»\n");
            break;
        case 4:
            printf( "Сегодня смотреть ничего не будем :(\n" );
            break;
        default:
            printf( "Неправильный ввод.\n" );
    }
    getchar();
    return 0;
}

Итак, как же работает этот код? Для начала, мы сделали небольшое меню (строки5 — 10), чтобы как-то информировать пользователя, что необходимо водить в программу. Как вы уже поняли, необходимо ввести число — 1, 2, 3 или 4. В зависимости от введенного числа, программа будет срабатывать поразному. В данном примере очень хорошо видно, что вводимое значение сохраняется в переменную input, и после этого, значение в этой переменной передается в оператор switch, строка 13строках 13 — 29 объявлен оператор множественного выбора switch. Какже он работает? Очень просто, по порядку программа сравнивает переменную input со значениями 1, 2, 3 и 4 . Например, если мы ввели число 3, топрограмма выполнит код, который находится в строках 21-22, при вводе единицы, программа напечатает сообщение из строки 15.Думаю суть вы уловили. Ну, а, если мы ввели другое число, отличное от заданных, выполнится блок кода в строке 27. Смотрим результат работы программы. Я ввел значение — 3, сегодня буду смотреть — Ходячих!

CppStudio.com
Что бы сегодня посмотреть?
1. Стрела(Arrow)
2. Сверхъестественное(Supernatural)
3. Ходячие мертвецы(Walking Dead)
4. Выход
Ваш выбор: 3
«Fight the dead. Fear the living»

Вы можете поместить данное меню и ввод значени пользователя в цикл, тогда сможете в цикле делать выбор столько раз,  сколько сами захотите. Надеюсь, что описал весь процесс достаточно понятно, тема не сложная, но для закрепления материала, поэксперементируйте с этим кодом. Удачи!

Практика

К сожалению, для данной темы пока нет подходящих задач. Если у вас есть таковые на примете, отправте их по адресу: admin@cppstudio.com. Мы их опубликуем!

Автор: Marienko L.
Дата: 23.11.2013
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.