Cykly

Častokrát musíme určité akcie opakovať.

Napríklad výstup údajov zo zoznamu jeden po druhom alebo len spustenie rovnakého kódu pre každé číslo od 1 do 10.

Cykly sú spôsob, ako opakovať rovnaký kód viackrát.

While

while cyklus má nasledujúcu syntax:

while (podmienka) {
  // kód
  // alebo aj nazývaný ako "telo cyklu"
}

Kým je podmienka pravdivá, kód z tela cyklu sa vykoná.

Napríklad, cyklus vypíše i pokiaľ platí, že i < 3:

let i = 0;
while (i < 3) { // zobrazí 0, potom 1, potom 2
  alert( i );
  i++;
}

Do.. while

Tento typ cyklu má nasledujúcu syntax:

do {
  // telo cyklu
} while (podmienka);

Cyklus najprv vykoná telo cyklu a až potom otestuje podmienku. Ak bola podmienka splnená, telo cyklu vykoná znova.

Jediný rozdiel medzi cyklu while a do while je ten, že cyklus do while sa vykoná aspoň raz, zatiaľčo cyklus while sa nemusí nikdy vykonať.

Napr.

let i = 0;
do {
  alert( i );
  i++;
} while (i < 3);

For

Cyklus for je najpoužívanejší cyklus. Má nasledujúcu syntax:

for (začiatok; podmienka; krokovanie) {
  // ... telo cyklu ...
}

Pozrime sa na význam týchto častí príkladom. Nasledujúci cyklus spustí funkciu alert(i) pre i od 0 do 3 (ale nie vrátane):

for (let i = 0; i < 3; i++) { // zobrazí 0, potom 1, potom 2
  alert(i);
}

Jednotlivé časti sú reprezentované ako:

začiatok i = 0 Vykoná sa raz pri spustení cyklu
podmienka i < 3 Porovná sa vždy pred vykonaním cyklu
krokovanie i++ Vykoná sa vždy po spustení tela cyklu. Navyšuje i vždy o jednu
telo cyklu alert(i) Vykoná sa v prípade, že podmienka bola splnená

V podstate to vyzerá takto:

Run begin
→ (if condition → run body and run step)
→ (if condition → run body and run step)
→ (if condition → run body and run step)
→ ...

Vynechanie častí

Pre for cyklus môžeme vynechať ktorúkoľvek časť a aj napriek tomu bude cyklus fungovať.

let i = 0; // i máme deklarované a má nastavenú hodnotu

for (; i < 3; i++) { // začiatok nie je potrebný
  alert( i ); // 0, 1, 2
}
let i = 0;

for (; i < 3;) { // vynechané krokovanie
  alert( i++ ); // i sa navýši vrámci výpisu
}
for (;;) {
  // opakuje sa donekonečna
}

Príkazy break a continue

Tieto príkazy sa používajú na ukončenie cyklu, alebo preskočenie zvyšku tela cyklu.

Break

Príkaz break sa používa na predčasné ukončenie cyklu.

let sum = 0;

while (true) {

  let value = +prompt("Zadajte číslo", '');

  if (!value) break; // ak nebolo zadané číslo, tak ukonči cyklus

  sum += value;

}
alert( 'Sum: ' + sum );

Continue

Príkaz continue sa používa na preskočenie zvyšku tela cyklu a na prejdenie k ďalšej iterácii.

for (let i = 0; i < 10; i++) {

  // ak true, preskoč zvyšok tela cyklu
  if (i % 2 == 0) continue;

  alert(i); // 1, potom 3, 5, 7, 9
}