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.