Cyklus while
Představte si, že potřebujete vypsat čísla od 1 do 100. Mohli byste stokrát napsat console.log(), ale trvalo by to věčnost a jakákoli pozdější změna by byla ještě horší. Programy takovou opakovanou práci dělají pořád: projdou všechny studenty v seznamu, zkontrolují každé zboží v obchodě nebo 60krát za sekundu překreslí obrazovku hry. K tomu slouží cykly. Cyklus je část kódu, která se provádí znovu a znovu.
Nejjednodušší je cyklus while (dokud). Opakuje blok kódu, dokud platí jeho podmínka:
let cislo = 1;
while (cislo <= 5) {
console.log(cislo);
cislo = cislo + 1;
}Vypíše:
1
2
3
4
5Cyklus while vypadá podobně jako if: klíčové slovo, podmínka v kulatých závorkách a blok kódu ve složených závorkách. Rozdíl je v tom, že if provede svůj blok nejvýše jednou, kdežto while se k podmínce stále vrací. Krok za krokem:
- Program vytvoří proměnnou
cislos hodnotou1. - Zkontroluje podmínku
cislo <= 5. Platí (jetrue), takže provede blok: vypíše1a zvýšícislona2. - Vrátí se k podmínce.
2 <= 5stále platí, takže vypíše2a zvýšícislona3. - A tak dále, dokud nebude
cislorovno6. Pak podmínka neplatí (jefalse), cyklus skončí a program pokračuje kódem za cyklem.
Jednomu provedení bloku se říká průchod cyklem neboli iterace. Tento cyklus má pět průchodů. Kdybyste chtěli vypsat čísla až do 100, stačilo by změnit 5 na 100.
Dejte si pozor na cykly, které nikdy neskončí. Když zapomenete na řádek cislo = cislo + 1;, zůstane cislo stále 1, podmínka bude platit pořád a cyklus bude donekonečna vypisovat 1. Takovému cyklu se říká nekonečný cyklus. V těchto cvičeních se takový program po 5 sekundách zastaví s hláškou Program běžel příliš dlouho, a proto byl zastaven. Není v něm nekonečný cyklus? Když ji uvidíte, zkontrolujte, že cyklus mění proměnnou ze své podmínky tak, aby podmínka jednou přestala platit.
Jak psát:
Pokyny
Vytvořte proměnnou cislo s hodnotou 10. Použijte let, protože cyklus bude její hodnotu měnit.
Pod ni napište cyklus while, který poběží, dokud bude cislo menší nebo rovno 20. V cyklu vypište cislo a potom ho zvyšte o 1. Program vypíše čísla od 10 do 20, každé na samostatném řádku.
Teď v kódu změňte jedno číslo tak, aby cyklus vypsal všechna čísla od 10 do 100.