Você já viu algo desse tipo em um código em C++: x ? a : b
? Se sim, você deu de cara com o operador ternário. O operador ternário em C++ é um operador condicional que avalia uma condição e retorna um valor se a condição for verdadeira, e outro valor se a condição for falsa. É somente isso!
Funcionamento do operator ternário
Veja a seguir como funciona a sintaxe do operador ternário em C++. Primeiro temos a condição e o sinal de interrogação. Após a interrogação temos o valor que será retornado da expressão caso a condição seja verdadeira; logo em seguida, depois dos dois-pontos (:) temos o valor que será retornado quando a condição for falsa.
Exemplo de uso do operador ternário em C++
No exemplo abaixo vemos o uso do operator ternário para imprimir uma mensagem dizendo que um número aleatório gerador está abaixo de 50 ou é maior ou igual a 50. O primeiro operando do operador ternário é randomNumber < 50
(randomNumber é o número aleatório gerado pela função generateRandomNumber
); o segundo é a mensagem dizendo que o número está abaixo de 50 (isso se randomNumber
for menor que 50); se randomNumber
for maior ou igual a 50, a mensagem gerada é a oposta. É só isso. Bastante simples, não?
#include <iostream> #include <random> int generateRandomNumber() { std::random_device rd; // Seed for the random number engine std::mt19937 gen(rd()); // Mersenne Twister engine for randomness // Define the range [1, 100] std::uniform_int_distribution<> distr(1, 100); // Generate a random number int randomNumber = distr(gen); return randomNumber; } int main() { int randomNumber = generateRandomNumber(); std::cout << (randomNumber < 50 ? "O numero aleatorio gerado está abaixo de 50" : "O numero aleatorio gerado está acima de 50") << std::endl; return 0; }
Conclusão
Nós vimos nesse artigo como funciona o operador ternário em C++. Espero que você tenha percebido que ele é bastante simples. Todavia, ele pode causar problemas de eficiência por evitar que o mecanismo conhecido como RVO em C++ seja ativado – fique atento nisto! Se quiser saber ainda mais sobre operadores ternários em C++, leia o livro C++ Profissional, de Marc Gregoire, na página 25.
Gostou do artigo? Então inscreva-se na nossa newsletter para não perder nenhum dos nossos artigos 🙂
Sou apaixonado por tecnologia, literatura e também filosofia. O cultivo dessas paixões ao longo da minha trajetória me inspiraram a compartilhar aquilo que aprendo com os outros da maneira mais clara que eu possa. Sou formado em Engenharia Elétrica no Brasil, e também sou engenheiro formado na França. Trabalho atualmente como programador C++ em uma multinacional francesa, uma das maiores empresas de TI do mundo.