Ehdollinen operaattori tunnetaan myös nimellä a kolmiosainen operaattori . Ehdolliset lauseet ovat päätöksentekolausekkeita, jotka riippuvat lausekkeen tuloksesta. Sitä edustaa kaksi symbolia, eli '?' ja ':'.
Koska ehdollinen operaattori toimii kolmella operandilla, se tunnetaan myös kolmiosaisena operaattorina.
Ehdollisen operaattorin käyttäytyminen on samanlainen kuin ' tai muuten ' lausunto 'jos-else' -lauseena on myös päätöksentekolausunto.
Ehdollisen operaattorin syntaksi
Expression1? expression2: expression3;
Yllä olevan syntaksin kuvallinen esitys näkyy alla:
Yllä olevan syntaksin merkitys.
- Yllä olevassa syntaksissa lauseke1 on Boolen ehto, joka voi olla joko tosi tai epätosi arvo.
- Jos lauseke1 johtaa todelliseen arvoon, lauseke2 suoritetaan.
- Lausekkeen2 sanotaan olevan tosi vain, kun se palauttaa nollasta poikkeavan arvon.
- Jos lauseke1 palauttaa väärän arvon, lauseke3 suoritetaan.
- Lausekkeen3 sanotaan olevan epätosi vain, kun se palauttaa nollan arvon.
Ymmärretään kolmiosainen tai ehdollinen operaattori esimerkin kautta.
#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; }
Yllä olevassa koodissa otamme syötteen käyttäjän 'iän'. Syötön jälkeen olemme soveltaneet ehtoa ehdollisen operaattorin avulla. Tässä tilassa tarkistamme käyttäjän iän. Jos käyttäjän ikä on suurempi tai yhtä suuri kuin 18, lause1 suoritetaan, eli (printf('äänestyskelpoinen')), muuten lauseke2 suoritetaan, eli (printf('ei äänioikeutettu') ).
Tarkastellaan yllä olevan ohjelman tulosta.
Jos annamme alle 18-vuotiaan käyttäjän iän, tulos olisi:
Jos annamme yli 18-vuotiaan käyttäjän iän, tulos olisi:
Kuten voimme havaita yllä olevista kahdesta lähdöstä, että jos ehto on tosi, lause1 suoritetaan; muuten lauseke2 suoritetaan.
Tähän mennessä olemme havainneet, kuinka ehdollinen operaattori tarkistaa ehdon ja suorittaa lausekkeet ehdon perusteella. Nyt näemme, kuinka ehdollista operaattoria käytetään arvon määrittämiseen muuttujalle.
muuntaa int merkkijonoksi java
Ymmärretään tämä skenaario esimerkin kautta.
#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; }
Yllä olevassa koodissa olemme ilmoittaneet kaksi muuttujaa, eli 'a' ja 'b', ja määrittäneet 5 arvoa 'a'-muuttujalle. Ilmoituksen jälkeen annamme 'b'-muuttujalle arvon ehdollisen operaattorin avulla. Jos 'a':n arvo on 5, 'b':lle annetaan arvo 3, muuten 2.
Lähtö
Yllä oleva tulos osoittaa, että b-muuttujan arvo on 3, koska muuttujan a arvo on 5.
Kuten tiedämme, ehdollisen operaattorin ja 'if-else':n käyttäytyminen on samanlaista, mutta niillä on joitain eroja. Katsotaanpa niiden eroja.
- Ehdollinen operaattori on yksittäinen ohjelmointikäsky, kun taas if-else-käsky on ohjelmointilohko, jossa käskyt ovat suluissa.
- Ehdollista operaattoria voidaan käyttää myös arvon määrittämiseen muuttujalle, kun taas 'if-else' -käskyä ei voi käyttää määritystarkoitukseen.
- Se ei ole hyödyllinen lauseiden suorittamisessa, kun lauseita on useita, kun taas 'if-else' -lause osoittautuu sopivammaksi suoritettaessa useita lauseita.
- Sisäkkäinen kolmiosainen operaattori on monimutkaisempi, eikä sitä voida helposti korjata, kun taas sisäkkäinen if-else-lause on helppo lukea ja ylläpitää.