logo

Operador condicional en C

L'operador condicional també es coneix com a operador ternari . Les declaracions condicionals són les declaracions de presa de decisions que depenen de la sortida de l'expressió. Es representa amb dos símbols, és a dir, '?' i ':'.

Com que l'operador condicional funciona en tres operands, també es coneix com a operador ternari.

El comportament de l'operador condicional és similar al ' si una altra cosa La declaració com a declaració 'si-else' també és una declaració de presa de decisions.

Sintaxi d'un operador condicional

 Expression1? expression2: expression3; 

La representació pictòrica de la sintaxi anterior es mostra a continuació:

Operador condicional en C

Significat de la sintaxi anterior.

  • A la sintaxi anterior, l'expressió1 és una condició booleana que pot ser un valor vertader o fals.
  • Si l'expressió1 dóna com a resultat un valor veritable, s'executarà l'expressió2.
  • Es diu que l'expressió2 només és certa quan retorna un valor diferent de zero.
  • Si l'expressió1 retorna un valor fals, s'executarà l'expressió3.
  • Es diu que l'expressió3 és falsa només quan retorna un valor zero.

Entenem l'operador ternari o condicional a través d'un exemple.

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

Al codi anterior, estem prenent l'entrada com a 'edat' de l'usuari. Després de prendre entrada, hem aplicat la condició mitjançant un operador condicional. En aquesta condició, estem comprovant l'edat de l'usuari. Si l'edat de l'usuari és superior o igual a 18 anys, s'executarà la declaració1, és a dir, (printf('apte per votar')) en cas contrari, s'executarà la declaració 2, és a dir, (printf('no apte per a votar') ).

Observem la sortida del programa anterior.

Si proporcionem l'edat de l'usuari menor de 18 anys, la sortida seria:

Operador condicional en C

Si proporcionem l'edat de l'usuari major de 18 anys, la sortida seria:

Operador condicional en C

Com podem observar a partir de les dues sortides anteriors que si la condició és certa, aleshores s'executa la sentència1; en cas contrari, s'executarà la instrucció 2.

Fins ara, hem observat que com l'operador condicional verifica la condició i, en funció de la condició, executa les declaracions. Ara, veurem com s'utilitza un operador condicional per assignar el valor a una variable.

exemples d'autòmats dfa

Entenem aquest escenari a través d'un exemple.

 #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 codi anterior, hem declarat dues variables, és a dir, 'a' i 'b', i assignem 5 valors a la variable 'a'. Després de la declaració, estem assignant valor a la variable 'b' mitjançant l'operador condicional. Si el valor de 'a' és igual a 5, 'b' s'assigna amb un valor 3, en cas contrari 2.

Sortida

Operador condicional en C

La sortida anterior mostra que el valor de la variable 'b' és 3 perquè el valor de la variable 'a' és igual a 5.

Com sabem que el comportament de l'operador condicional i 'if-else' és similar però tenen algunes diferències. Vegem les seves diferències.

  • Un operador condicional és una instrucció de programació única, mentre que la sentència 'if-else' és un bloc de programació en què les sentències es troben sota el parèntesi.
  • També es pot utilitzar un operador condicional per assignar un valor a la variable, mentre que la instrucció 'if-else' no es pot utilitzar per a l'assignació.
  • No és útil per executar les sentències quan les sentències són múltiples, mentre que la sentència 'if-else' resulta més adequada quan s'executen diverses sentències.
  • L'operador ternari imbricat és més complex i no es pot depurar fàcilment, mentre que la declaració imbricada 'si-else' és fàcil de llegir i mantenir.