Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Nauč se s námi víc. Využij 50% zdarma na e-learningové kurzy.
C# week

Diskuze: Podmínka?

Aktivity
Avatar
Eldest
Redaktor
Avatar
Eldest:26.10.2012 16:42

Může mi někdo vysvětlit co toto je a co to děla?

((x % 11 != 10) ? 2 : 1)
 
Odpovědět
26.10.2012 16:42
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Eldest
David Jančík:26.10.2012 16:47

To je podmínka zapsaná na jeden řádek.

if (x % 11 != 10)
   return 2;
else
   return 1;

Používá se na zkrácení zápisu. Né vždy se to ale hodí, kvůli přehlednosti.

Nahoru Odpovědět
26.10.2012 16:47
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Eldest
Redaktor
Avatar
Odpovídá na David Jančík
Eldest:26.10.2012 16:48

Ok, díky moc.

 
Nahoru Odpovědět
26.10.2012 16:48
Avatar
matesax
Redaktor
Avatar
matesax:26.10.2012 16:54

Stačilo by:

x % 11 == 10 ? 1 : 2

Nesouhlasím - toto přehlednost naopak zvyšuje - navíc se to dá odřádkovat. Spíše je kontraindikací, že se to dá použít jen při nastavování hodnoty. Maximálně vybírání akce - ale to už bych použil if/else. Jmenuje se to ternární operátor...

Editováno 26.10.2012 16:57
 
Nahoru Odpovědět
26.10.2012 16:54
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:26.10.2012 16:58

Napsal jsem "Né vždy se to hodí". Protože v určitých situacích ti to kód pěkně znepřehlední, musíš si umět vybrat kam to dát. Ty aby sis zase nerýpnul že :)
Jo ternární operátor, sem si nemohl vzpomenout.

Nahoru Odpovědět
26.10.2012 16:58
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:26.10.2012 17:02
x % 11 == 10 ?

1 :

2
if (x % 11 == 10)
ss = 1;
else
ss = 2;

To přeci bude stejné - ne? Ať uděláš cokoliv...

Editováno 26.10.2012 17:03
 
Nahoru Odpovědět
26.10.2012 17:02
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:26.10.2012 17:09

To rýpaní ohledně délky kódu je už opravdu trapné. Co kdybys tam měl třeba funkci s nějakými parametry? Není vhodné dát 2 volání funkce s několika parametry a ještě podmínku na jeden řádek.

Nahoru Odpovědět
26.10.2012 17:09
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Eldest
Kit:26.10.2012 17:20

Ternární operátor se hodí zejména v anonymních funkcích, ve kterých se klasické větvení nedá použít. Na rozdíl od větvení je výsledkem nějaká hodnota.

Nahoru Odpovědět
26.10.2012 17:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.