Ajude nosso projeto a se manter online.

Operador Condicional Ternário em C++: ?:

Baixar apostila de C++
Baixar a apostila de C++
Neste tutorial de nosso curso de C++, vamos aprender o que é, para que serve e como usar o operador condicional ternário, o ?:


Operador Condicional ?: em C++

O operador ?: é o único ternário na linguagem, ou seja, o único que aceita três operandos.

A sintaxe desse operador condicional ternário é:

  • condição ? instrução1 : instrução2 ;
Seu funcionamento é bem simples, a condição condição é testada.
Se ela for verdadeira a instrução instrução1 é executada.
Caso a condição seja falsa, a instrução2 que é executada.

É basicamente um teste condicional IF ELSE, mas um simples, curtinho, para executar instruções de uma linha só.

Vamos refazer alguns exemplos de programa que fizemos usando IF e ELSE, mas agora usando o operador ternário ?:

Como usar o Operador Ternário ?:

Você foi contratado para fazer um programa para uma casa de shows. Em determinado trecho do código, você vai pedir a idade do cliente. Se for maior de idade (tem 18 anos ou mais), avise que ele pode comprar o ingresso. Se tiver menos, seu programa deve informar que ele não pode entrar na casa.

Nosso código fica assim:

#include <iostream>
using namespace std;

int main()
{
    int age;

    cout << "Sua idade: ";
    cin >> age;

    age>=18 ? (cout << "Ok, você é de maior!") :
              (cout << "Você é de menor, não pode entrar!") ;

    return 0;
}

Bem simples, não é?

Operador Ternário ?: como utilizar em C++

Seu professor te contratou para criar um programa que recebe a nota do aluno. Caso ela seja 7.0 ou mais, ele foi aprovado. Caso contrário, ele está reprovado.

Usando o operador ternário:

#include <iostream>
using namespace std;

int main()
{
    float grade;

    cout << "Sua nota: ";
    cin >> grade;

    grade>=7 ? (cout << "Aprovado"):(cout << "Reprovado");

    return 0;
}

Bem mais enxuto o código.

Exemplo de uso de ?:

Escreva um programa que pergunta o salário de uma pessoa. Se for maior que 3 mil, tem que pagar 20% de imposto. Se for menor, tem que pagar 15%. Exiba o valor do imposto que a pessoa tem que pagar. Imposto é roubo ?

#include <iostream>
using namespace std;

int main()
{
    float sal, tax;

    cout << "Seu salário: ";
    cin >> sal;

    tax = sal>3000 ? 0.20 : 0.15;
    cout << "Imposto devido: R$ " << tax*sal <<endl;

    return 0;
}
Essa solução ficou bem mais geniosa.
A variável tax vai receber o valor que retorna do operador condicional, que é 0.20 ou 0.15.

Usando o operador ternário ?: em C++

Escreva, usando o operador condicional ternário, um programa que recebe um inteiro e diz se ele é par ou ímpar.

#include <iostream>
using namespace std;

int main()
{
    int num;

    cout << "Digite um numero: ";
    cin >> num;

    num%2==0 ? cout <<"É par" : cout <<"É impar";

    return 0;
}

Exercício proposto

Quando fizemos nossa calculadora simples em C++, deixamos um bug lá de propósito.
Rode ela novamente e digite dois números, mas o segundo é 0.

Vai dar erro, pois não é possível fazer uma divisão por 0.

Resolva esse bug da calculadora, testando se o usuário digitou 0 e diga que não é possível resolver a operação de divisão, usando o operador ternário.

Poste sua solução nos comentários.

Nenhum comentário:

Postar um comentário