Autor Zpráva
robbie
Profil
Ahoj, mám úkol v ucebnici javascript okamžitě, ovšem nedodali řešení.
Znění ukolu je opravit kod, přeskočte průchod cyklu, v němž se hodnota proměnné zbyvajiciUkoly=2
Tak nějak nevím, co chtějí dat místo continue;
Děkuji moc

var zbyvajiciUkoly=3;
    while (zbyvajiciUkoly > 0) {
        if(zbyvajiciUkoly==2){
        continue;
        }
          console.log('Zbývá vám dokončit úkolů: ' + zbyvajiciUkoly + '.');
        zbyvajiciUkoly--;  
         }
blaaablaaa
Profil
robbie:
zbyvajiciUkoly--; musí být i před tím continue, jinak se to zacyklí (proměnná zbyvajiciUkoly zůstane pořád 2)
robbie
Profil
blaaablaaa:
se omlouvám ale proc promenná zůstane pořád 2 , potom continue neskočí kod na console.log a pak na zbyvajiciUkoly--; ?
blaaablaaa
Profil
robbie:
Protože continue znamená, aby přeskočil zbytek příkazů aktuální iterace a vyhodnotil znovu podmínku ve while.

Zkus si to odkrokovat (klidně jen v hlavě):
1. nastavím zbyvajiciUkoly=3
2. platí (zbyvajiciUkoly > 0) ? => ANO, jdu do cyklu
3. platí (zbyvajiciUkoly==2) ? Ne, nejdu do podmínky
4. vypíšu console.log a pak nastavím zbyvajiciUkoly-- (takže zbyvajiciUkoly mám teď = 2)
5. další iterace cyklu - platí (zbyvajiciUkoly > 0) => ANO, jdu do cyklu
6. platí (zbyvajiciUkoly==2) ? ANO, jdu do podmínky
7. v podmínce mám continue, takže zbytek cyklu ignoruju a jdu zase nahoru na začátek while (a zbyvajiciUkoly mám pořád = 2)

8. další iterace cyklu - platí (zbyvajiciUkoly > 0) => ANO, jdu do cyklu
9. platí (zbyvajiciUkoly==2) ? ANO, jdu do podmínky
10. v podmínce mám continue, takže zbytek cyklu ignoruju a jdu zase nahoru na začátek while (a zbyvajiciUkoly mám pořád = 2)

... protože mám zbyvajiciUkoly už pořád=2, opakují se stále body 5, 6 a 7
Mlocik97
Profil
ono myslím že vhodnejšie je tu použiť for() a taky bych ja asi skôr použil if(zbyvajiciUkoly !== 2) { console. log(...) }
ale keďže knižka chce zjavne vysvetliť princíp continue, tak jak píše blaaablaaa je treba dekrementaci napsat i v podmienke ak to necháte while cyklus. Knižka si vybrala celkom blbý príklad.
Takýto kód bych osobne nenapsal nikdy.
robbie
Profil
blaaablaaa:

děkuju moc, vysvětlil jsi mi to perfektně, už to chápu. Napiš mi prosím tvůj mail kontakt do mého mailu, chtěl bych ti ještě nějak poděkovat. Jelikož málo lidí si dá takovou práci někomu cizímu vysvětlovat učivo. Ještě jednou děkuji

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0