Kolmen operaattorin selitys C: ssä

Ohjelmoijat käyttävät kolmen komponentin operaattori päätöksenteon sijasta pidempään , jos ja muu ehtolauseet.

Kolmiportainen operaattori ottaa kolme perustetta:

  1. Ensimmäinen on vertailuperuste
  2. Toinen on tulos todellisen vertailun perusteella
  3. Kolmas on tulos väärän vertailun perusteella

Se auttaa ajattelemaan, että kolmiosainen operaattori on lyhyt tapa tai jos-muu-lauseen kirjoittaminen. Tässä on yksinkertainen päätöksenteon esimerkiksi käyttämällä jos ja else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Tämä esimerkki vie yli 10 riviä, mutta se ei ole välttämätöntä. Voit kirjoittaa yllä olevan ohjelman vain kolmella koodirivillä kolmiportaisen operaattorin avulla.

Syntaksi

condition ? value_if_true : value_if_false

Lausunnossa arvioidaan, value_if_truetäyttyykö conditionse ja value_if_falsemuuten.

Tässä on yllä oleva esimerkki, joka on kirjoitettu uudelleen kolmikantaisen operaattorin käyttöön:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

Yllä olevan esimerkin tuotoksen tulisi olla:

10

con asetettu yhtä suureksi a, koska ehto a < boli totta.

Muista, että argumenttien value_if_trueja niiden value_if_falseon oltava samantyyppisiä, ja niiden on oltava yksinkertaisia ​​lausekkeita eikä täydellisiä lausekkeita.

Kolmikantaiset operaattorit voidaan sijoittaa aivan kuten if-else-lauseet. Harkitse seuraavaa koodia:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Tämä yllä oleva koodi on kirjoitettu uudelleen sisäkkäisen kolmikantaisen operaattorin avulla:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

Molempien yllä olevien koodisarjojen lähdön tulisi olla:

3