L'opérateur ternaire ? : en C ++




тернарный оператор ?: C++

espoir, vous êtes bien fait affaire avec le thème sélectionnez si et else et vous n'êtes pas trop difficile à résoudre tâches sur ce sujet. La même leçon nous continuons à apprendre les rudiments de la programmation en C ++, et se familiariser avec un autre opérateur de sélection (branche) – il opérateur ternaire ? :

Il est généralement utilisé dans les cas, et si le code de condition, qu'il est nécessaire d'effectuer, les conditions de balayage, très simple. par exemple, demander à l'utilisateur s'il veut continuer à travailler dans le programme ou si vous voulez en sortir. La syntaxe est:

тернарный оператор ?:

Tout d'abord, nous avons besoin d'écrire une condition nécessaire pour nous et de mettre un point d'interrogation derrière elle ? . plus, dans la même ligne, après le point d'interrogation écriture d'abord une simple commande (à), qui sera effectuée, si la condition renvoie true (vrai). Après cette commande, nous avons mis un colon : et écrire une seconde commande (à). Cette deuxième équipe après les deux points, exécutée uniquement si, si la condition renvoie false (faux).

exemple. Supposons qu'un utilisateur retire de l'argent à un guichet automatique. Il avait l'opération, et l'écran devrait apparaître question: “Vous souhaitez effectuer une autre opération?” L'utilisateur doit faire un choix (oui ou non) et appuyez sur le bouton correspondant. Nous organisons la sélection du programme suivant:

L'utilisateur effectue une sélection et entre une valeur – rangée 13. En ligne 15 nous vérifions la valeur saisie. Si la condition == variables 1 résultats vrai (autrement dit, si la variable est vraiment 1), le code exécuté, situé après le point d'interrogation ? . et, soit après le côlon : – ignoré. autrement, si l'utilisateur est entré 0, ignoré le code situé entre ? et : , а выполняется второй код. Вот результат работы если введено 1:

тернарный оператор ?:

si 0:

тернарный оператор ?:

Voici un autre exemple intéressant. il, en utilisant l'opérateur ternaire, minimum déterminé et le nombre maximum des deux valeurs, qui va présenter à l'utilisateur.

Considérez la ligne 20. Le code sera exécuté comme – première course pour l'opérateur ternaire, retourne une valeur basée sur l'état de livraison, et après que la valeur est écrite dans la variable max. Si la condition (FIRSTDIGIT > secondDigit) – vérité, sens FIRSTDIGIT записывается в max , si elle est fausse, la valeur enregistrée secondDigit. Далее должно быть всё понятно. Kompiliruem:

тернарный оператор ?:

Le programme fonctionne très bien!

Un peu de l'opérateur ternaire est dit dans ce tutoriel vidéo (15-procès-verbal). outre, в нем рассматриваются так же оператор множественного выбора interrupteur (17-procès-verbal) et условные операторы si et autre




enfin ajouter, что в некоторых соглашениях о кодировании не рекомендуют использовать тернарный оператор из-за того, il réduit la lisibilité du code. Mais il est nécessaire de connaître, puisque personne ne peut prédire, quels codes ont besoin pour trouver et lire l'avenir. О соглашениях кодирования больше можно узнать в нашей статье code source de mise en forme.

Diriez-vous “merci” auteur? – Partagez cet article avec vos amis. Для этого нажмите на кнопку вашей социальной сети под этой статьей. Je serai heureux! :)

Bulletin de nouvelles leçons:


Je suis d'accord pour recevoir des messages de purecodecpp.com sur mon e-mail

date
page
L'opérateur ternaire ? : en C ++
évaluation
5

5 réflexions sur "L'opérateur ternaire ? : en C ++

  1. ИМХО стоит добавить, что не все соглашения о кодировании вообще разрешают использовать тернарный оператор, tk. часто падает простота восприятия кода.

    Вот так:

    точно лучше не делать.
    1) У тебя variableпеременная типа bool, поэтому variable == 1 стоит заменить на variable.
    2) Ты сравниваешь булевую переменную с целым числом, это может запутать других программистов.
    3) По некоторым соглашениям о кодировании при сравнении на равенство константное выражение должно быть в левой части (чтобы не получилось написать variable = 1 вместо variable == 1, tk. 1 = variable выдаст ошибку на этапе компиляции).
    4) я бы записал так:

    Ряд товарищей посоветовали бы вместо variable написать true == variable, но тут можно спорить :).

    Вобщем весь код такой. Я бы это:

    заменил так (sur):

    тут нет смысла выполнять сравнение 2 раза и нет смысла брать условие в скобки

    Из последнего примера видно, что двоеточием разделяется не одна команда и другая команда (как на твоем рисунке), а выражения. Притом я бы упомянул, что оператор запятая тоже возвращает значение.

    1. rrrFer (он же Владимир), это замечательно, что ты так тщательно вычитываешь наши статьи. Что можно сказать по твоему комментарию? Скажу таксовершенствовать и оптимизировать код можно до бесконечности. Благодаря твоему комментарию читатели увидят, что одну и ту же задачу можно решить различными способами и что есть разные варианты обращения с булевксими переменными. В твоем случае код более оптимизирован. А мой код расписан более подробно (так мы ориентируемся в первую очередь на новичков) и точно так же, как и твой код, имеет право на жизнь.
      P.S. Ругательства из твоего комментария удалены и в дальнейшем их видеть не хотелось бы

      1. Эмммв моем комментарии были ругательства? )

        Я не вычитывал статьи вообще, я посмотрел рисунок и исходный код.

        Дело тут не в оптимизации, а в потенциальных косяках, которые никогда не появятся если следовать некоторым соглашениям.

        Ну например, когда ты сравниваешь булевую переменную с целым числом, что происходит? – происходит приведение типа bool к типу int, при этом в стандарте закреплено, что true соответствует единице, а falseнулю. Но если бы целое число кастовалось в bool, la 2 == true должно было бы вернуть true (но это не так, хотя всякие студенты и школьники могут сомневаться, ведь они не читали стандарт).

        Про соглашения я писал к тому, что есть подводные камни. Например однажды ты напишешь свой класс комплексных чисел и перегрузишь для него оператор сравнения и оператор приведения типа к bool. Je pense que, что можно получить разное и опасное поведение в этом случае. à savoir. правильнее сравнивать переменные одного типа, а не надеяться на то что оно автоматически скастуется.

        Je pense que, что акцент надо сделать на случаях, когда тернарный оператор надо применять, à savoir. когда он будет полезен. Без него вообще можно обойтись, но он является синтаксическим сахаром, которым часто злоупотребляют школьники и студенты. пишут вот так примерно:

        У нас к соглашении о кодировании были перечислены случаи когда РАЗРЕШАЕТСЯ использовать этот оператор чтобы не допустить вот такой код.

      2. Мы полностью согласны с тем, что без этого тернарного оператора можно обойтись в программировании. Но надо знать, что такой существует, как он выглядит и как работает. Никогда не знаешь, какой чужой код тебе придется читать и что там будет использовано.

  2. В примере с if else значения max и min принимают 0, объясните пожалуйста в чем ошибка?

Laisser un commentaire

Placez le code dans les balises: <pre class="lang:c ++ décodage:true ">VOTRE CODE</pré>