O operador condicional também é conhecido como operador ternário . As declarações condicionais são as declarações de tomada de decisão que dependem da saída da expressão. É representado por dois símbolos, ou seja, '?' e ':'.
Como o operador condicional funciona em três operandos, também é conhecido como operador ternário.
O comportamento do operador condicional é semelhante ao ' se-outro ' como declaração 'if-else' também é uma declaração de tomada de decisão.
Sintaxe de um operador condicional
Expression1? expression2: expression3;
A representação pictórica da sintaxe acima é mostrada abaixo:
Significado da sintaxe acima.
- Na sintaxe acima, a expressão1 é uma condição booleana que pode ser um valor verdadeiro ou falso.
- Se a expressão1 resultar em um valor verdadeiro, a expressão2 será executada.
- A expressão2 é considerada verdadeira somente quando retorna um valor diferente de zero.
- Se a expressão1 retornar um valor falso, a expressão3 será executada.
- A expressão3 é considerada falsa apenas quando retorna valor zero.
Vamos entender o operador ternário ou condicional através de um exemplo.
#include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; }
No código acima, consideramos a entrada como a 'idade' do usuário. Depois de receber a entrada, aplicamos a condição usando um operador condicional. Nesta condição, estamos verificando a idade do usuário. Se a idade do usuário for maior ou igual a 18 anos, então a instrução1 será executada, ou seja, (printf('elegível para votação')) caso contrário, a instrução2 será executada, ou seja, (printf('não elegível para votação') ).
Vamos observar a saída do programa acima.
Se fornecermos a idade do usuário com menos de 18 anos, o resultado seria:
Se fornecermos a idade do usuário acima de 18 anos, o resultado seria:
Como podemos observar nas duas saídas acima, se a condição for verdadeira, a instrução1 será executada; caso contrário, a instrução2 será executada.
Até agora, observamos que a forma como o operador condicional verifica a condição e com base na condição, ele executa as instruções. Agora veremos como um operador condicional é usado para atribuir o valor a uma variável.
arraylist e lista vinculada
Vamos entender esse cenário através de um exemplo.
#include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; }
No código acima, declaramos duas variáveis, ou seja, 'a' e 'b', e atribuímos 5 valores à variável 'a'. Após a declaração, estamos atribuindo valor à variável 'b' usando o operador condicional. Se o valor de 'a' for igual a 5, então 'b' receberá um valor 3, caso contrário, 2.
Saída
A saída acima mostra que o valor da variável 'b' é 3 porque o valor da variável 'a' é igual a 5.
Como sabemos que o comportamento do operador condicional e 'if-else' é semelhante, mas apresentam algumas diferenças. Vejamos suas diferenças.
- Um operador condicional é uma única instrução de programação, enquanto a instrução 'if-else' é um bloco de programação no qual as instruções ficam entre parênteses.
- Um operador condicional também pode ser usado para atribuir um valor à variável, enquanto a instrução 'if-else' não pode ser usada para fins de atribuição.
- Não é útil para executar instruções quando as instruções são múltiplas, enquanto a instrução 'if-else' se mostra mais adequada para executar instruções múltiplas.
- O operador ternário aninhado é mais complexo e não pode ser facilmente depurado, enquanto a instrução 'if-else' aninhada é fácil de ler e manter.