Оператор switch в C ++




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

В этой статье мы немного изменим формат изучения темы. В начале рассмотрим пример с оператором interrupteur (свич), в котором будет много комментариев о том, что происходит в коде. А вся теория будет располагаться ниже. Работу оператора множественного выбора interrupteur в C++ мы рассмотрим в решении такой задачи: LET, у пользователя есть нумерованный список станций метро Барселоны. Необходимо написать код, в котором будет реализован диалог с пользователем, а именно предложено ввести номер станции метро. После ввода номера станции, надо показать на экран её название и время в пути. Если же станции с таким номером нет, сообщить об этом и предложить ввести номер снова. Приступим:

До строки 13 – всё понятно: объявление необходимых переменных, вывод вопроса на экран, и вход в цикл faire pendant. En ligne 14 мы получили значение répondre, которое ввёл пользователь. Далее смотрите, как интересно работает interrupteur() : в круглых скобках передаём ему répondre (rangée 16) и возле каждого слова cas записываем возможные значения répondre, которые может ввести пользователь (1, 2, 3 …). После каждого cas вы видите оператор : , он обязателен. За ним следуют команды, которые должны быть выполнены, si la valeur cas совпадет со значением répondre. Оператор Pause в конце каждого блока cas так же является обязательным. Он показывает компилятору, что если этот cas был выполнен, то надо выйти из interrupteur(). То есть фактически, когда выполняется interrupteur () начинается перебор и поиск необходимого cas. si répondre est 1, travail cas 1 и на экран будет показано то, что в нем прописано до ключевого слова Pause, а все остальные cas, будут проигнорированы. si répondre est 2выполнится только cas 2 и произойдет выход из interrupteur(). А что если ни одно значение блоков cas не совпадет, с тем значением, что принял interrupteur() (dans ce cas répondre)? Для этого предусмотрен блок défaut. До него доходит дело, как раз тогда, когда ни один cas не отработал и, respectivement, не отработал ни один Pause этих блоков. В нашем примере, он сработает если значение, которое введет пользователь, будет <1 ou >5. Тогда пользователь увидит на экране сообщение о том, что станции метро с таким номером нет и необходимо повторить ввод.

В цикле, мы постоянно проверяем значение répondre, которое введено пользователем. Делаем это с помощью si . Если значение находится в рамках подходящего нам диапазона (à partir de 1 à 5 ), то управляющей переменной était будет присвоено значение 0. Dans ce cas,, пользователю больше не будет предложено ввести новое значение.

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

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

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

  • syntaxe:

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

  • bloc défaut можно расположить в любом месте блока interrupteur() Например между первым и вторым cas . Его код в любом случае выполнится только тогда, если не найдется нужного значения в блоках cas. mais, советую вам располагать его именно в конце, как делают большинство программистов. Это такое негласное правило.
  • в нижнем блоке interrupteur(), будь то défaut ou cas, opérateur Pause можно не указывать. Так сделано в нашем примере. Но следует помнить, что во всех остальных Pause обязателен!
  • défaut не является обязательным. Его в interrupteur() может и не быть вовсе. Dans ce cas,, если ни одно значение блоков cas не совпадет с тем, что принял interrupteur() , программа просто перейдет на следующую строку кода, расположенную под interrupteur()
  • иногда блоки cas проверяют символьные, а не числовые значения. Тогда эти символы необходимо брать в одинарные кавычкиcase ‘b’: , case ‘G’: , case ‘+’ etc.

У кого есть желаниепосмотрите видео-урок по теме. Помимо оператора множественного выбора interrupteur (17-procès-verbal) в нем рассмотрены instructions conditionnelles si et autre, aussi bien que opérateur ternaire ?: (15-procès-verbal)




Остались вопросы – leur demander dans les commentaires. Обязательно всем отвечу. Apprenez les bases de la programmation avec nous! Больше примеров с использованием interrupteur в C++ рассмотрено в статье tâches: Оператор switch в C ++.

Bulletin de nouvelles leçons sur la programmation:

Оператор switch в C ++
5 (100%) 4 votes

33 réflexions sur "Оператор switch в C ++

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

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

    1. 1. «чукча не читатель — чукча писатель
      2. “и даже толком не читал
      Мне нечего добавить к моему предыдущему сообщению.

    2. То есть все, кто по профессии не супер крутой прогер с математическим мегаинтеллектом и опытом разработки рулонов кодадегенерат?
      Тогда выоднобоко развитый ботан с претензией.

      Как новичек, я лично понимаю, что я не в окфорде или кембридже, что бы меня училиидеальнои очень благодарен Федору за его труд!

  2. Почему мой код не повторяется при вводе неправильного значения?

    1. А как должен повторяться код? Я в этом листинге беглым взглядом нашел 6 erreurs, из-за которых он не скомпилируется. Может, сначала его хотя бы запустить, а уже потом ошибки искать?

      1. Код отображается некорекктно в некоторых местах. А так ошибок по версии моего компилятора ошибок нет. Но while не дейвствует по каким-то причинам. Я и просил помочь мне понять по каким. А не писать пустые комментарии.

  3. Еще одну ошибку у Вас нашел. В воспитании. Исправьте и возвращайтесь.

    1. Какой вы внимательныйТак внимайте же)
      Вы всю жизнь ошибки ищете. Вас просят помочь, а вы ищете ошибки? Если уж вы так высокомерны, то уточните ошибки, которые вы у меня в коде нашли. Хотя весь код – erreur, сайт отобразил его не так, как он у меня в IDE написан.

      1. Откуда у Вас информация, что я всю жизнь ищу ошибки? Сами придумали?
        Нас просят помочь найти ошибку (ведь если что-то не работает или работает не так, в коде ошибка?), но ошибки мы искать не должны? И да, если код не скомпилируется, то логические ошибки в нем искать глупо.
        Исходя из Ваших слов, я полагаю, что для доказательства того факта, что я не высокомерен, мне нужно просто не уточнять найденные мной ошибки. bon, я не стану.

  4. aucun, pas inventé. По комментариям видно. Код компилируется. Просто программа игнорит команду while, вот и все. Исходя из Ваших слов, Вы не можете помочь мне с моей проблемой, а значит, пишете комментарии не по теме. Не можетене надо!

    1. Тот код, что Вы сумели привести, не скомпилируется, а другого кода мы не видим, Вы же не показываете. Но Вы, все же, хотите, чтобы мы телепатически узнали, какой именно код хранится на Вашем компьютере и помогли решить проблему.
      Я предполагаю, что while не работает, потому что значение условия (var == true) != true, но переменная var не определена и не присваивается нигде и зачем она нужна, ведомо только Вам. Но это лишь предположение, tk. в условии может содержаться все, что угодно, Вы ведь не знаете, что существуют pastebin-сервисы, не корежащие код.

      1. Снес куда подальше весь код с while. aucun, здесь вина не var, ведь на моем компьютере (вы смешно это заметили), нет varДаже если вместо var поставить определенную trueOrFalse, как и есть у меня в IDE, то код не работает.
        Попробую вписать код без тегов
        #comprendre
        using namespace std;

        int main()
        {
        setlocale(LC_ALL, “rus”);
        int firstNumber = 0;
        int secondNumber = 0;
        int composition = 0;
        cout <> firstNumber;
        cout <> secondNumber;
        cout <> composition;

        si (composition == firstNumber * secondNumber)
        {
        cout << "Правильный ответ. Вы за лето не все забыли!";
        }
        autre
        cout << "Неправильный ответ. Теперь вы знаете, чем заняться… Essayez à nouveau! à propos, правильный ответ – " << firstNumber * secondNumber << endl;
        }
        }

Laisser un commentaire

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *