Cyklus for - příkaz svitch – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cyklus for - příkaz svitch – Java – Fórum – Programujte.comCyklus for - příkaz svitch – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
poort20
Duch
3. 2. 2018   #1
-
0
-

Zdravím vás pánové a dámy.

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:

i je menší než 1

i je menší než 2

i je menší než 3

i je menší než 4

i je menší než 5

Nahlásit jako SPAM
IP: 176.74.157.–
Kit+15
Guru
3. 2. 2018   #2
-
0
-

#1 poort2
Na konci každého case ti chybí break. Podívej se do učebnice Javy, jak se píše switch.

Divím se, že ti za to Java nevynadala.

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.
poort20
Duch
3. 2. 2018   #3
-
0
-

#2 Kit
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.

Nahlásit jako SPAM
IP: 176.74.157.–
Kit+15
Guru
3. 2. 2018   #4
-
0
-

#3 poort2
Když tam není break, tak to pokračuje v provádění příkazů na dalších řádcích.

Místo break však mnohem raději používám return, který tím netrpí.

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.
poort20
Duch
3. 2. 2018   #5
-
0
-

#4 Kit
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?

Nahlásit jako SPAM
IP: 176.74.157.–
Kit+15
Guru
3. 2. 2018   #6
-
0
-

#5 poort2
Ano, tak to funguje.

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.
poort20
Duch
3. 2. 2018   #7
-
0
-

Velmi děkuji za odpověď, Zase se můžu o kousek posunout dál

Nahlásit jako SPAM
IP: 176.74.157.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Prikaz if — založil doma22

Opakovaný příkaz — založil Kapy

Příkaz UPDATE — založil Pavelv

Příkaz Handle — založil Paulí

Příkaz if ve funkci — založil etro00

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý