NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Avatar
Eldest
Tvůrce
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
Vlastník
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
Tvůrce
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
Tvůrce
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
Avatar
David Jančík
Vlastník
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
Tvůrce
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 Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger: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
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
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.