logo

Operador condicional en C

El operador condicional también se conoce como operador ternario . Las declaraciones condicionales son declaraciones de toma de decisiones que dependen del resultado de la expresión. Está representado por dos símbolos, es decir, '?' y ':'.

Como el operador condicional funciona con tres operandos, también se le conoce como operador ternario.

El comportamiento del operador condicional es similar al ' si no 'la declaración como la declaración 'si-si no' también es una declaración de toma de decisiones.

Sintaxis de un operador condicional

 Expression1? expression2: expression3; 

La representación pictórica de la sintaxis anterior se muestra a continuación:

Operador condicional en C

Significado de la sintaxis anterior.

  • En la sintaxis anterior, la expresión1 es una condición booleana que puede ser un valor verdadero o falso.
  • Si la expresión1 da como resultado un valor verdadero, entonces se ejecutará la expresión2.
  • Se dice que la expresión2 es verdadera sólo cuando devuelve un valor distinto de cero.
  • Si la expresión1 devuelve un valor falso, entonces se ejecutará la expresión3.
  • Se dice que la expresión3 es falsa sólo cuando devuelve un valor cero.

Entendamos el operador ternario o condicional a través de un ejemplo.

 #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; } 

En el código anterior, tomamos la entrada como la 'edad' del usuario. Después de recibir información, aplicamos la condición utilizando un operador condicional. En esta condición, estamos verificando la edad del usuario. Si la edad del usuario es mayor o igual a 18 años, entonces se ejecutará la declaración1, es decir, (printf('elegible para votar')) de lo contrario, se ejecutará la declaración2, es decir, (printf('no elegible para votar') ).

Observemos el resultado del programa anterior.

Si proporcionamos la edad del usuario menor de 18 años, el resultado sería:

Operador condicional en C

Si proporcionamos la edad del usuario mayor de 18 años, el resultado sería:

Operador condicional en C

Como podemos observar en los dos resultados anteriores, si la condición es verdadera, entonces se ejecuta la declaración1; de lo contrario, se ejecutará la instrucción 2.

Hasta ahora, hemos observado que el operador condicional verifica la condición y, según la condición, ejecuta las declaraciones. Ahora veremos cómo se utiliza un operador condicional para asignar el valor a una variable.

¿Cuál es la diferencia entre un megabyte y un gigabyte?

Entendamos este escenario a través de un ejemplo.

 #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; } 

En el código anterior, hemos declarado dos variables, es decir, 'a' y 'b', y asignamos 5 valores a la variable 'a'. Después de la declaración, asignamos valor a la variable 'b' utilizando el operador condicional. Si el valor de 'a' es igual a 5, entonces a 'b' se le asigna un valor 3, de lo contrario 2.

Producción

Operador condicional en C

El resultado anterior muestra que el valor de la variable 'b' es 3 porque el valor de la variable 'a' es igual a 5.

Como sabemos, el comportamiento del operador condicional y 'if-else' es similar pero tienen algunas diferencias. Veamos sus diferencias.

  • Un operador condicional es una declaración de programación única, mientras que la declaración 'if-else' es un bloque de programación en el que las declaraciones están entre paréntesis.
  • También se puede utilizar un operador condicional para asignar un valor a la variable, mientras que la declaración 'if-else' no se puede utilizar para fines de asignación.
  • No es útil para ejecutar declaraciones cuando son múltiples, mientras que la declaración 'if-else' resulta más adecuada cuando se ejecutan múltiples declaraciones.
  • El operador ternario anidado es más complejo y no se puede depurar fácilmente, mientras que la declaración anidada 'if-else' es fácil de leer y mantener.