logo

Feltételes operátor C-ben

A feltételes operátor más néven a hármas operátor . A feltételes állítások olyan döntéshozó állítások, amelyek a kifejezés kimenetétől függenek. Ezt két szimbólum jelöli, azaz a '?' és ':'.

Mivel a feltételes operátor három operanduson dolgozik, ezért hármas operátorként is ismert.

A feltételes operátor viselkedése hasonló a ' ha más ' kijelentés, mint 'ha-else' kijelentés egyben döntéshozatali nyilatkozat is.

Feltételes operátor szintaxisa

 Expression1? expression2: expression3; 

A fenti szintaxis képi ábrázolása az alábbiakban látható:

Feltételes operátor C-ben

A fenti szintaxis jelentése.

  • A fenti szintaxisban a kifejezés1 logikai feltétel, amely lehet igaz vagy hamis érték is.
  • Ha a kifejezés1 valódi értéket eredményez, akkor a kifejezés2 végrehajtásra kerül.
  • A 2. kifejezést csak akkor mondjuk igaznak, ha nullától eltérő értéket ad vissza.
  • Ha a kifejezés1 hamis értéket ad vissza, akkor a kifejezés3 végrehajtásra kerül.
  • A 3 kifejezést csak akkor mondjuk hamisnak, ha nulla értéket ad vissza.

Értsük meg a háromtagú vagy feltételes operátort egy példán keresztül.

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

A fenti kódban a bemenetet a felhasználó „életkoraként” vesszük. A bevitel után feltételes operátor segítségével alkalmaztuk a feltételt. Ebben az állapotban ellenőrizzük a felhasználó életkorát. Ha a felhasználó életkora 18 évnél nagyobb vagy egyenlő, akkor az utasítás1 végrehajtásra kerül, azaz (printf('szavazásra alkalmas')), ellenkező esetben az utasítás2 végrehajtásra kerül, azaz (printf('nem jogosult szavazásra') ).

Figyeljük meg a fenti program kimenetét.

Ha a felhasználó 18 év alatti életkorát adjuk meg, akkor a kimenet a következő lenne:

Feltételes operátor C-ben

Ha a felhasználó 18 év feletti életkorát adjuk meg, akkor a kimenet a következő lenne:

Feltételes operátor C-ben

Ahogy a fenti két kimenetből megfigyelhetjük, hogy ha a feltétel igaz, akkor az1 utasítás végrehajtásra kerül; ellenkező esetben az utasítás2 végrehajtásra kerül.

Eddig azt tapasztaltuk, hogy a feltételes operátor hogyan ellenőrzi a feltételt, és feltétel alapján hajtja végre az utasításokat. Most látni fogjuk, hogy egy feltételes operátor hogyan rendeli hozzá az értéket egy változóhoz.

vb és vb net

Értsük meg ezt a forgatókönyvet egy példán keresztül.

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

A fenti kódban két változót deklaráltunk, azaz az 'a'-t és 'b'-t, és 5 értéket rendelünk az 'a' változóhoz. A deklaráció után a feltételes operátor segítségével értéket adunk a 'b' változónak. Ha az „a” értéke egyenlő 5-tel, akkor „b”-hez 3-as érték rendelődik, ellenkező esetben 2.

Kimenet

Feltételes operátor C-ben

A fenti kimenet azt mutatja, hogy a 'b' változó értéke 3, mivel az 'a' változó értéke 5.

Mint tudjuk, a feltételes operátor és az 'if-else' viselkedése hasonló, de van némi különbség. Nézzük a különbségeiket.

  • A feltételes operátor egyetlen programozási utasítás, míg az 'if-else' utasítás egy olyan programozási blokk, amelyben az utasítások zárójelbe kerülnek.
  • Egy feltételes operátor is használható érték hozzárendelésére a változóhoz, míg az if-else utasítás nem használható hozzárendelési célra.
  • Nem hasznos az utasítások végrehajtásához, ha az utasítások többszörösek, míg az 'if-else' utasítás alkalmasabb több utasítás végrehajtására.
  • A beágyazott háromtagú operátor összetettebb, és nem lehet könnyen hibakeresni, míg a beágyazott „if-else” utasítás könnyen olvasható és karbantartható.