Neste tutorial, aprenderemos sobre o operador ternário em C ++ com a ajuda de exemplos.
Em C ++, o operador ternário (também conhecido como operador condicional ) pode ser usado para substituir if… else em certos cenários.
Operador ternário em C ++
Um operador ternário avalia a condição de teste e executa um bloco de código com base no resultado da condição.
Sua sintaxe é
condition ? expression1 : expression2;
Aqui, condition
é avaliado e
- se
condition
fortrue
,expression1
é executado. - E, se
condition
forfalse
,expression2
é executado.
O operador ternário leva 3 operandos ( condition
, expression1
e expression2
). Daí o nome operador ternário .
Exemplo: Operador Ternário C ++
#include #include using namespace std; int main() ( double marks; // take input from users cout <> marks; // ternary operator checks if // marks is greater than 40 string result = (marks>= 40) ? "passed" : "failed"; cout << "You " << result << " the exam."; return 0; )
Produto 1
Digite suas notas: 80 Você passou no exame.
Suponha que o usuário digite 80 . Em seguida, a condição marks>= 40
avalia para true
. Portanto, a primeira expressão "passed"
é atribuída ao resultado.
Produto 2
Digite suas notas: 39,5 Você foi reprovado no exame.
Agora, suponha que o usuário insira 39,5 . Em seguida, a condição marks>= 40
avalia para false
. Portanto, a segunda expressão "failed"
é atribuída ao resultado.
Quando usar um operador ternário?
Em C ++, o operador ternário pode ser usado para substituir certos tipos de if… else
instruções.
Por exemplo, podemos substituir este código
#include using namespace std; int main() ( // Create a variable int number = -4; if (number> 0) cout << "Positive Number"; else cout << "Negative Number!"; return 0; )
com
#include #include using namespace std; int main() ( int number = -4; string result; // Using ternary operator result = (number> 0) ? "Positive Number!" : "Negative Number!"; cout << result << endl; return 0; )
Resultado
Número negativo!
Aqui, os dois programas fornecem a mesma saída. No entanto, o uso do operador ternário torna nosso código mais legível e limpo.
Nota: só devemos usar o operador ternário se a instrução resultante for curta.
Operadores ternários aninhados
Também é possível usar um operador ternário dentro de outro operador ternário. É chamado de operador ternário aninhado em C ++.
Este é um programa para descobrir se um número é positivo, negativo ou zero usando o operador ternário aninhado.
#include #include using namespace std; int main() ( int number = 0; string result; // nested ternary operator to find whether // number is positive, negative, or zero result = (number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative"); cout << "Number is " << result; return 0; )
Resultado
Número é zero
No exemplo acima, observe o uso de operadores ternários,
(number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative");
Aqui,
(number == 0)
é a primeira condição de teste que verifica se o número é 0 ou não. Se for, ele atribui o valor da string"Zero"
ao resultado.(number> 0)
Caso contrário, a segunda condição de teste é avaliada se a primeira condição forfalse
.
Nota : Não é recomendado usar operadores ternários aninhados. Isso ocorre porque torna nosso código mais complexo.