logo

Nosacīts operators C

Nosacītais operators ir pazīstams arī kā a trīskāršs operators . Nosacītie paziņojumi ir lēmumu pieņemšanas paziņojumi, kas ir atkarīgi no izteiksmes izvades. To apzīmē ar diviem simboliem, t.i., '?' un ':'.

Tā kā nosacījuma operators strādā ar trim operandiem, tas ir pazīstams arī kā trīskāršais operators.

Nosacītā operatora darbība ir līdzīga ' ja-citādi ' paziņojums kā 'ja-cits' paziņojums ir arī lēmuma pieņemšanas paziņojums.

Nosacījuma operatora sintakse

 Expression1? expression2: expression3; 

Iepriekš minētās sintakses attēla attēlojums ir parādīts zemāk:

Nosacīts operators C

Iepriekš minētās sintakses nozīme.

  • Iepriekš minētajā sintaksē izteiksme1 ir Būla nosacījums, kas var būt patiesa vai nepatiesa vērtība.
  • Ja izteiksmes1 rezultāts ir patiesa vērtība, tiks izpildīta izteiksme2.
  • Tiek uzskatīts, ka izteiksme2 ir patiesa tikai tad, ja tā atgriež vērtību, kas nav nulle.
  • Ja izteiksme1 atgriež nepatiesu vērtību, tiks izpildīta izteiksme3.
  • Izteiksme3 tiek uzskatīta par nepatiesu tikai tad, ja tā atgriež nulles vērtību.

Izpratīsim trīskāršo vai nosacītu operatoru, izmantojot piemēru.

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

Iepriekš minētajā kodā ievade tiek uzskatīta par lietotāja “vecumu”. Pēc ievades mēs esam piemērojuši nosacījumu, izmantojot nosacījuma operatoru. Šādā stāvoklī mēs pārbaudām lietotāja vecumu. Ja lietotāja vecums ir lielāks vai vienāds ar 18, tad paziņojums1 tiks izpildīts, t.i., (printf('balsošanai piemērots')), pretējā gadījumā tiks izpildīts paziņojums2, t.i., (printf('nav tiesīgs balsot') ).

Novērosim iepriekš minētās programmas izvadi.

Ja mēs norādām lietotāja vecumu, kas jaunāks par 18, tad izvade būtu šāda:

Nosacīts operators C

Ja mēs norādām lietotāja vecumu virs 18, tad izvade būtu:

Nosacīts operators C

Kā mēs varam novērot no iepriekšminētajām divām izejām, ja nosacījums ir patiess, tad tiek izpildīts paziņojums1; pretējā gadījumā paziņojums2 tiks izpildīts.

Līdz šim esam novērojuši, ka nosacījuma operators pārbauda nosacījumu un, pamatojoties uz nosacījumu, izpilda priekšrakstus. Tagad mēs redzēsim, kā nosacījuma operators tiek izmantots, lai mainīgajam piešķirtu vērtību.

atšķirība starp gigabaitu un megabaitu

Izpratīsim šo scenāriju, izmantojot piemēru.

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

Iepriekš minētajā kodā esam deklarējuši divus mainīgos, t.i., “a” un “b”, un mainīgajam “a” piešķīruši 5 vērtības. Pēc deklarācijas mēs piešķiram vērtību mainīgajam “b”, izmantojot nosacījumu operatoru. Ja 'a' vērtība ir vienāda ar 5, tad 'b' tiek piešķirta ar 3 vērtību, pretējā gadījumā 2.

Izvade

Nosacīts operators C

Iepriekšējā izvade parāda, ka mainīgā “b” vērtība ir 3, jo mainīgā “a” vērtība ir vienāda ar 5.

Kā zināms, nosacījuma operatora un “if-else” uzvedība ir līdzīga, taču tiem ir dažas atšķirības. Apskatīsim to atšķirības.

  • Nosacījuma operators ir viens programmēšanas priekšraksts, savukārt “if-else” ir programmēšanas bloks, kurā priekšraksti atrodas iekavās.
  • Nosacītu operatoru var izmantot arī, lai mainīgajam piešķirtu vērtību, savukārt priekšrakstu “if-else” nevar izmantot piešķiršanas mērķim.
  • Tas nav noderīgs, izpildot paziņojumus, ja priekšraksti ir vairāki, turpretim priekšraksts “if-else” ir piemērotāks, izpildot vairākus paziņojumus.
  • Ligzdotais trīskāršais operators ir sarežģītāks, un to nevar viegli atkļūdot, savukārt ligzdoto “if-else” paziņojumu ir viegli lasīt un uzturēt.