Operator warunkowy
Z Wikipedii
Operator warunkowy (ang. conditional operator) to konstrukcja programistyczna instrukcji warunkowej w formie operatora trójkowego w językach które rozróżniają wyrażenia (expressions) od komend (statement), pozwalająca na sprawdzenie warunku na poziomie wyrażenia.
W C jest zapisywana jako warunek ? wyr1 : wyr2. Taką samą postać ma w takich językach jak C++, Java, C#, Perl i Ruby; w języku Python kolejność wyrażeń jest nieco inna: wyr1 if warunek else wyr2.
Przy spełnionym warunku zwracana jest wartość pierwszego wyrażenia wyr1, w przeciwnym razie - drugiego wyr2. Obliczana jest wartość tylko tego z wyrażeń, które zostało wybrane.
Dzięki temu rozróżnienie między wyrażeniami i komendami jest o wiele mniej istotne, niż w takich językach jak Pascal, i można pisać o wiele prostszy i bardziej zrozumiały kod.
Np.:
zmienna = warunek ? wyr1 : wyr2;
daje taki sam rezultat, co
if (warunek) then
zmienna = wyr1
else
zmienna = wyr2;
Bardziej skomplikowane przypadki wymagają duplikacji kodu lub użycia zmiennych tymczasowych, obniżając znacząco jego czytelność, np. poniższy przykład z Apache 2:
apr_table_set(r->headers_in, "Max-Forwards", apr_psprintf(r->pool, "%ld", (maxfwd > 0) ? maxfwd : 0));
musiałby zostać zapisany jako:
if (maxfwd > 0)
apr_table_set(r->headers_in, "Max-Forwards", apr_psprintf(r->pool, "%ld", maxfwd));
else
apr_table_set(r->headers_in, "Max-Forwards", apr_psprintf(r->pool, "%ld", 0));
lub:
int tmp;
if (maxfwd > 0)
tmp = maxfwd;
else
tmp = 0;
apr_table_set(r->headers_in, "Max-Forwards", apr_psprintf(r->pool, "%ld", tmp));
Języki nie rozróżniające wyrażeń i komend, takie jak języki funkcjonalne, mogą używać zwykłego if w tym celu i nie potrzebują osobnego operatora warunkowego.
[edytuj] Zobacz też
- IIf - funkcja o podobnym działaniu dostępna m.in. w Visual Basic
| Facebook blokuje Friend Connect |
|
Serwis społecznościowy Facebook zablokował zaprezentowaną niedawno przez Google usługę Friend Connect. Jak informuje serwis InfoWorld, naruszała ona postanowienia regulaminu.
|
| Miliarder doprowadzi do sprzedaży Yahoo? |
|
Jeden z udziałowców Yahoo!, miliarder Carl Icahn, przygotowuje się to walki z zarządem internetowego giganta na spotkaniu akcjonariuszy, które odbędzie się trzeciego lipca. Poinformował on, że będzie prowadził swoje działania dopóki firma nie rozpocznie nowych negocjacji z Microsoftem.
|
| Samsung i LG pracujÄ… nad standardem mobilnej DTV |
|
Firmy Samsung i LG rozpoczynają współpracę nad nowym standardem mobilnej telewizji cyfrowej, planując połączenie ze sobą technologii MPH oraz A-VSB.
|
| Odtwarzacz MP3 do kÄ…pieli |
|
Firma Ubanana zaprezentowała odtwarzacz MP3 uCan, wykonany z nieprzemakalnych materiałów, dzięki któremu można cieszyć się ulubioną muzyką podczas pływania, lub nurkowania.
|
| Kolorowy cooler dla precesora |
|
Firma Thermaltake wprowadzi na rynek chłodzenie procesora, będące częścią serii Orb. System składa się z aluminiowego radiatora z 140-ma żebrami oraz 112-milimetrowego wentylatora.
|