Cyklus for

Většina cyklů prochází nějakou řadu čísel: od 1 do 10 nebo třeba indexy pole. V cyklu while je takové počítání rozdělené na tři místa: proměnnou vytvoříte před cyklem, podmínka je nahoře a změna na konci bloku. Cyklus for (pro) soustředí všechny tři části na jeden řádek, takže na první pohled vidíte, jak cyklus počítá:

for (let i = 1; i <= 3; i++) {
    console.log(i);
}

Vypíše:

1
2
3

Dělá přesně totéž jako tento cyklus while:

let i = 1;
while (i <= 3) {
    console.log(i);
    i++;
}

V závorkách za for jsou tři části oddělené středníky:

  1. let i = 1 je začátek. Provede se jednou, před prvním průchodem, a vytvoří počítadlo i.
  2. i <= 3 je podmínka. Kontroluje se před každým průchodem. Dokud platí, blok se provede; jakmile přestane platit, cyklus skončí.
  3. i++ je krok. Provede se po každém průchodu a posune počítadlo dál.

Pořadí je tedy: začátek, podmínka, blok, krok, podmínka, blok, krok… dokud podmínka neplatí. Části se oddělují středníky, ne čárkami. S čárkami dostanete chybu SyntaxError.

Počítadlo se obvykle jmenuje i (z anglického „index“), ale může mít jakýkoli název. Krok může být jakákoli změna: i += 2 počítá po dvou a i-- počítá pozpátku:

for (let i = 3; i > 0; i--) {
    console.log(i);
}
3
2
1

Proč let, a ne const? Počítadlo je jedna proměnná, kterou krok po každém průchodu změní: i++ ji změní z 1 na 2 a pak na 3. Proměnnou vytvořenou pomocí const změnit nejde, takže for (const i = 1; i <= 3; i++) vypíše 1 a pak skončí chybou TypeError: Assignment to constant variable.

Který cyklus kdy použít? for, když víte, kolikrát se cyklus provede: od 1 do 10 nebo jednou pro každý prvek pole. while, když to předem nevíte, například když chcete číslo zdvojnásobovat, dokud nebude větší než 1000:

let cislo = 1;
let pocetZdvojnasobeni = 0;
while (cislo <= 1000) {
    cislo = cislo * 2;
    pocetZdvojnasobeni++;
}
console.log("Zdvojnásobení:", pocetZdvojnasobeni);
console.log("Číslo:", cislo);
Zdvojnásobení: 10
Číslo: 1024

Pokyny

Přepište cyklus while z editoru na cyklus for a cyklus while smažte. Program bude dál vypisovat čísla od 1 do 5.

Změňte svůj cyklus for tak, aby vypsal čísla od 15 do 20 včetně.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

Zpět

3/12

Další