Mohl by mi prosím někdo vysvětlit, když napíšu do zdrojáku toto:
int i;
for (i=0; i<=5; i++) {
switch (i) {
case 0:
System.out.println("i je mnší než 1");
case 1:
System.out.println("i je menší než 2");
case 2:
System.out.println("i je menší než 3");
case 3:
System.out.println("i je menší než 4");
case 4:
System.out.println("i je menší než 5");
}
System.out.println();
}
vypíše se mi toto?
i je mnší než 1
i je menší než 2
i je menší než 3
i je menší než 4
i je menší než 5
i je menší než 2
i je menší než 3
i je menší než 4
i je menší než 5
i je menší než 3
i je menší než 4
i je menší než 5
i je menší než 4
i je menší než 5
i je menší než 5
Jde mi o to, že logicky bych chápal, že proměnná "i" nabývá s každým cyklem jinou hodnotu, to znamená, že by se mělo vypsat pouze:
#2Kit
podle učebnice javy jsem postupoval (konkrétně Java 7 - výukový kurz strana 92) a tam se jedná právě o vyzkoušení odstranění break. Jen nechápu, že když "i" má v určité chvíli hodnotu např. 2, jak je možné, že reaguje na case 3 a case 4. Já chápu, že case není podmínka, ale nechápu, jak to funguje.
#4Kit
dalo by se tedy říct, že začne vykonávat příkazy ve chvíli, kdy je splněna podmínka v klauzuli case (např. tedy i = 2) a vykoná zbytek příkazů až do konce bloku, resp. do konce příkazu switch, přičemž další case už nebere v potaz?
Kdysi se toho hojně využívalo, ale dnes se to považuje za nežádoucí, protože to zhoršuje čitelnost programu. Novější programovací jazyky už tuto možnost nemají, protože to často vedlo k chybám, které se blbě hledaly. Java by na to měla vyhazovat warning. Pokud je čteš, tak to tam najdeš.
Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.