Оператор 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 (17-я минута) в ньому розглянуті умовні оператори if і else, а также тернарный оператор ?: (15-я минута)




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

Нові уроки з програмування:

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

  1. Федя, я статтю цю, не писав … і навіть толком не читав. Але сказане в ній про те, що break в гілках вибору практично майже завжди обов'язково, на початкових етапах вивчення дуже корисно.

    вони, Федя, хто за професією пише багато тисяч промислового програмного коду (як я), на відміну від degeneratov, які пишуть тільки коментарі у форумах (як ти) знають, що пропуск break в switch там де він потрібен – причина важких помилок, які знаходяться тільки багатогодинний налагодженням.

    1. 1. «Чукча не читач - чукча письменник!»
      2. “і навіть толком не читав”
      Мені нема чого додати до мого попереднього повідомлення.

    2. Тобто все, хто за професією не супер крутий прогерія з математичним мегаінтеллектом і досвідом розробки рулонів коду – дегенерат?
      тоді ви – однобоко розвинений ботан з претензією.

      як noviček, я особисто розумію, що я не в Окфорд або Кембриджі, що б мене вчили “ідеально” і дуже вдячний Федору за його працю!

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

Код розміщуйте в тегах: <pre class="lang:C ++ декодуванням:true ">ВАШ КОД</заздалегідь>