====== 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.