Cykly - while, do... while, for, break, continue

Cyklus for

Jedná se o cyklus, ve kterém jsou předem známa omezovací kritéria. Těmi jsou : počáteční hodnota, ukončující podmínka a ovlivnění řídící proměnné.

Cyklus for má následující syntaxi :

for (výraz_start;výraz_stop;výraz_iterace)
   příkaz;
Jak to funguje?

Při prvním vstupu do cyklu se vyhodnotí výraz_start, pak se otestuje výraz_stop a pokud je pravdivý provede se příkaz. Potom se provede výraz_iterace a cyklus běží znovu. Při druhém a dalším cyklu se již nevyhodnocuje výraz_start. Pokud je výraz_stop nepravdivý, cyklus se ukončí.

Pro kód :

for (int i = 1;i < 6;i++)
   System.out.println("AHOJ");
je výsledkem vypsání pěti řádků s textem AHOJ.

Pokud je potřeba v těle cyklu použití více příkazů, vkládají se do bloku odděleného složenými závorkami.

for (výraz_start;výraz_stop;výraz_iterace){
   příkaz1;
   příkaz2;
   příkaz3;
  }
Poznámka

Výrazy výraz_start, výraz_stop a výraz_iterace se nutně nemusí nacházet v hlavičce cyklu. Potom je ale nezbytné uvést středníky! Navíc se v případě absence výraz_stop může stát smyčka nekonečná!

Cyklus while

Cyklus while má následující syntaxi :

while (logický_výraz)
   příkaz

Jak to funguje?

Otestuje se logický_výraz a pokud je pravdivý, program vstoupí do cyklu a provede se příkaz. Toto se stále opakuje a pokud logický_výraz již není pravdivý, je cyklus opuštěn. Cyklus while se používá tehdy, pokud je podmínka pro jeho ukončení závislá na některém příkazu uvnitř cyklu. Pokud logický_výraz nebude pravdivý, příkaz v cyklu se nikdy neprovede.

Pokud je potřeba v těle cyklu použití více příkazů, vkládají se do bloku odděleného složenými závorkami.

while(logický_výraz){
   příkaz1;
   příkaz2;
   příkaz3;
  }

Pro kód :

int i = 1;
while (i < 6){
   System.out.println("AHOJ");
   i++;
   }
je výsledkem vypsání pěti řádků s textem AHOJ.

Poznámka

Pokud je logický_výraz splněn vždy lze tímto způsobem vytvořit nekonečný cyklus!

Cyklus do while

Cyklus do while má následující syntaxi :

do {
  příkaz/y;
  }while (logický_výraz);

Jak to funguje?

Program vstoupí do cyklu a provede příkaz/y. Otestuje se logický_výraz a pokud je pravdivý, cyklus se opakuje. Pokud logický_výraz již není pravdivý, je cyklus opuštěn. Je zřejmé, že narozdíl od cyklu while jsou příkazy provedeny minimálně jednou.

Pro kód :

int i = 1;
do {
 
   System.out.println("AHOJ");
   i++;
   }while (i < 6);
je výsledkem vypsání pět řádků s textem AHOJ.

Poznámka

Pokud je logický_výraz splněn vždy lze tímto způsobem vytvořit nekonečný cyklus!

Skokové příkazy break, continue, return

Příkaz break

Příkaz break ukončuje nejvnitřnější neuzavřenou smyčku - ihned opouští cyklus.

int i;
for (i = 1; i <= 10; i++){
    System.out.print(i+" ");
    if (i = 5) break;    
    System.out.print("dalsi cislo ") 
   }
vypíše na výstup toto: 1 dalsi cislo 2 dalsi cislo 3 dalsi cislo 4 dalsi cislo 5

Příkaz continue

Příkaz continue skáče na konec nejvnitřnější neuzavřené smyčky a vynutí si další iteraci (pokud se vyhoví podmínkám).

Program :

int i;
for (i = 1; i <= 10; i++){
    System.out.print(i+" ");
    if (i >= 5) continue;
    System.out.print("dalsi cislo ") 
   }
Vypíše na výstup toto: 1 dalsi cislo 2 dalsi cislo 3 dalsi cislo 4 dalsi cislo 5 6 7 8 9 10

Příkaz return

Příkaz return ukončí provádění metody (funkce), která jej obsahuje. Pokud je napsán v hlavním programu (metoda main()) je tento ukončen.

courses/bd6b36pjv/vstupni_znalosti/zal/cykly.txt · Last modified: 2018/01/17 15:12 (external edit)