Háromelemű feltételes operátor

Ha az állításunk csak egy utasításnyi hosszúságú, ami azt jelenti, hogy csak egy pontosvesszőig (;) tartalmaz utasítást, a blokkjelölő kapcsos zárójelekre nincs szükség. A fenti pédákban láttuk, ennek ellenére nem érdemes feltétlenül elhagyni, mert a kód olvassását könnyebbé teszi a késöbbiekben a programozónak.

Például:

if (a>b)

System.Console.WriteLine(a);

else

System.Console.WriteLine(b);

Még egy példa:

for(int i=12;i>0;i--)

System.Console.WriteLine(i);

Nagyon oda kell figyelniük, ha az ilyen típusú rövidítésekre, mivel ez súlyos szemantikai hibát okozhat. Ha szeretnénk használni rövidítést az előző példában van egy jó módszer, hogy hogyan használjuk a háromelemű feltételes kifejezést (?:)

namespace ConsoleApplication12

{

class Program

{

static void Main(string[] args)

{

int a = 10;

int b = 15;

int res;

res = (a > b) ? a : b;

System.Console.WriteLine(res);

}

}

}

Vagy a legrövidebb formátum:

21. ábra 

 

namespace ConsoleApplication12

{

class Program

{

static void Main(string[] args)

{

int a = 10;

int b = 15;

System.Console.WriteLine((a > b) ? a : b);

}

}

}

Hogyan működik? A zárójelben lévő logikai kifejezés kiértékelése után, igaz eredmény esetén behelyettesítődik a kérdőjel utáni értéket, hamis eredmény esetén a kettőspont utáni értéket.

 

 

A tananyag a követkkező licenc alá esik: GNU Free Documentation License