Основи програмування на С ++ для початківців

Оператор switch в C

оператор switch, switch c++, switch в с++, оператор множественного выбора, свич с++, основы программированияУ цій статті ми трохи змінимо формат вивчення теми. В начале рассмотрим пример с оператором switch(свич), в котором будет много комментариев о том, что происходит в коде. А вся теория будет располагаться ниже.

Роботу оператора множинного виборуswitch в C ++ ми розглянемо в рішенні такого завдання: Допустим, у користувача є нумерований список станцій метро Барселони. Необходимо написать код, в котором будет реализован диалог с пользователем, а именно предложено ввести номер станции метро. После ввода номера станции, надо показать на экран её название и время в пути. Если же станции с таким номером нет, повідомити про це і запропонувати ввести номер знову. Приступим:

До строки 13 – всё понятно: объявление необходимых переменных, вывод вопроса на экран, и вход в цикл do while. В рядку 14 ми отримали значенняanswer, которое ввёл пользователь. Далее смотрите, как интересно работает switch() : в круглых скобках передаём ему answer (рядок 16) і біля кожного словаcase  записуємо можливі значенняanswer, які може ввести користувач (1, 2, 3 …).

після кожного case ви бачите оператор : , он обязателен. За ним следуют команды, которые должны быть выполнены, если значениеcase співпаде зі значенням answer. операторbreak  в кінці кожного блоку case  так само є обов'язковим. Он показывает компилятору, что если этот case був виконаний, то надо выйти из switch().  Тобто фактично, когда выполняется switch () починається перебір і пошук необхідного case.

Еслиanswer  равно 1, сработает case 1 і на екран буде показано те, що в ньому прописано до ключового словаbreak, а все остальные case, будут проигнорированы. Если answer равно 2 – виконається тількиcase 2 і відбудеться вихід з switch(). А что если ни одно значение блоков case не збіжиться, с тем значением, что принял switch() (в нашем случае answer)? Для цього передбачений блокdefault. До него доходит дело, как раз тогда, когда ни один case не відпрацьовані і, соответственно, не відпрацьовані жоденbreak  цих блоків.

У нашому прикладі, он сработает если значение, которое введет пользователь, будет <1 или >5. Тогда пользователь увидит на экране сообщение о том, что станции метро с таким номером нет и необходимо повторить ввод.

В цикле, ми постійно перевіряємо значенняanswer, которое введено пользователем. Делаем это с помощью if . Якщо значення знаходиться в рамках відповідного нам діапазону (от 1 до 5 ), то управляющей переменной var буде присвоєно значення 0. В этом случае, пользователю больше не будет предложено ввести новое значение.

Вот как работает эта программа:

оператор switch, switch c++, switch в с++, оператор множественного выбора, свич с++

 Что следует запомнить:

  • синтаксис:

оператор switch, switch c++, switch в с++, оператор множественного выбора, свич с++

    • блокdefault  можна розташувати в будь-якому місці блокуswitch()  Наприклад між першим і другим case . Его код в любом случае выполнится только тогда, якщо не знайдеться потрібного значення в блоках case. Але, советую вам располагать его именно в конце, как делают большинство программистов. Это такое негласное правило.
    • в нижнем блоке switch(), будь тоdefault или case, оператор break  можна не вказувати. Так сделано в нашем примере. Но следует помнить, что во всех остальных break обов'язковий!
    • default  не є обов'язковим. Его в switch()  може і не бути зовсім. В таком случае, если ни одно значение блоков case  не збіжиться з тим, что принял switch() , программа просто перейдет на следующую строку кода, расположенную под switch()
  • иногда блоки case  перевіряють символьні, а не числовые значения. Тогда эти символы необходимо брать в одинарные кавычки –  справа "б": ,  випадок 'G': ,  випадок '+’ і т.д.

У кого есть желание – посмотрите видео-урок по теме.

Остались вопросы – задавайте их в комментариях. Обязательно всем отвечу.   Вивчайте основи програмування разом з нами! Більше прикладів з використаннямswitch  в C ++ розглянуто в статті Завдання:  Оператор switch в C .

49 думки про "Оператор switch в C

  1. #include
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “RU”);
    ІНТ відповідь;
    cout << "\a \a\a";
    cout << " \t Як справи користувач?" <> answer;
    switch (answer)
    {
    case (“нормально”):
    case (“добре”) :
    case (“Хорошо”) :
    case (“нормально”) :
    case (“відмінно”) :
    case(“Otilichno”) :
    break;
    cout << "Ок тогда начинаем" << endl;
    case ("не очень"):
    case ( "плохо:пойдет") :
    case ("не спрашивай") :
    case ( "Не очень" ):
    case ("Плохо пойдет" ):
    case ( "Не спрашивай") :

    cout << "Ок тогда в другой раз заходи" << endl;
    break;
    default:
    cout << "Пожалуйста граматно пиши" << endl;
    }

    system("pause");
    return 0;
    }
    хто небудь допоможіть мені

  2. Цей урок йде у гілці “Цикли і оператори розгалуження” за №3. У цій програмі використовуються оператори do і while, які розглядаються тільки в №6. коротше, краще думаю їх поміняти місцями чи щось таке, я далі ще не переглядав, але мені не зрозуміло, як у цій програмі працюють ці оператори..

  3. Допоможіть будь ласка, Я початківець.

    float AddVat(плаваюча ціна, int категорія)
    float total_price=0;

    Завдання полягає в тому, щоб функція обчислила і повернула загальну вартість, включаючи податок (заборонено використовувати scanf, тільки switch)

    Податки:
    1 категорія 20%
    2- 20%
    3-20%
    4-15%
    5-8%
    6-0%

  4. Не зрозуміло яким чином case: вірує значення змінної int answer = 0 підміняючи її

  5. Навіщо тут do while???
    Воно ж і без цього працює, а cin можна розмістити і за циклом і все так само працюватиме

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *