5 Cykly - cyklus nebo také smyčka je řídicí struktura programu, která opakovaně provádí posloupnost příkazů - opakování i ukončení cyklu je řízeno nějakou podmínku - cyklus se skládá z posloupnosti příkazů a podmíněného skoku, pomocí kterého se cyklus ukončuje při splnění podmínky - nekonečný cyklus je typ cyklu programu, který se neustále opakuje, pro jejich ukončení se používá příkaz break Příkaz while - příkaz testuje podmínku cyklu před průchodem cyklem - cyklus tedy nemusí proběhnout ani jednou - while používáme, závisí-li ukončovací podmínka na nějakém příkazu v těle cyklu. Předem tedy nedokážeme říci, proběhne-li cyklus jednou nebo stokrát. while (podmínka) { while (i < 10) { // vypíše čísla od 0 do 9 Příkaz do-while - v tomto cyklu se podmínka testuje až po průchodu cyklem - cyklus tedy proběhne nejméně jednou. - pokud zajistíme hned na počátku nesplnění podmínky cyklu, cyklus se vykoná jen jednou - pokud zajistíme, že podmínka cyklu nikdy není splněna, cyklus se stává nekonečným a ukončit jeho běh jde jen násilně příkazy; while (podmínka);
while (i <= 10); //vypíše čísla od 0 do 10 Příkaz for - typický příkaz cyklu, který použijeme v případě, že známe předem počet průchodů cyklem - používá se k opakování bloku kódu v zadaném, pevném počtu opakování - například chceme-li, aby cyklus běžel od jedné do dvaceti - inicializace se provádí před zahájením cyklu - v každém průchodu se provádí test podmínky - po ukončení každého průchodu cyklem se provede příkaz kroku - příkaz kroku by měl souviset s testovanou podmínkou, obvykle jde o navýšení (nebo snížení) proměnné, která počítá průchody cyklem for (inicializace; podmínka_ukončení; krok) { int n=5; for(int i = 0; i < n; i++) { // vypíše čísla od 0 do 4 Příkaz foreach - speciální typ příkazu for, který slouží k procházení polí - v Javě není definován jako samostatný příkaz a proto se používá v rámci příkazu for - v PHP je přímo definován příkaz foreach Java for (datový_typ proměnná : pole) { int[] a={1,2,3,4,5,6,7,8,9,0; for(int b : a){ // vypíše jednotlivá čísla z pole - nebo stejná funkčnost bez použití foreach int[] a={1,2,3,4,5,6,7,8,9,0; for (int i = 0; i < a.length; i++) { int b = a[i]; // vypíše jednotlivá čísla z pole PHP
echo $hodnota; // vypíše jednotlivá čísla z pole - můžeme také zjistit index prvku z pole echo $hodnota; // vypíše obsah prvku $pole[$index] = 100; // do prvku pole uloží hodnotu 100 Příkazy break a continue - oba tyto příkazy lze použít ve všech typech cyklů a oba nějakým způsobem mění normální průběh cyklu break - ukončuje nejvnitřnější neuzavřenou smyčku - opouští okamžitě cyklus - přerušuje a ukončuje předčasně zpracování cyklu ještě před provedením všech průchodů - lze jím z cyklu vystoupit (obvykle na základě další, vnitřní podmínky) Přiklad: int hledane=8; boolean nalezeno=false; for (int i = 1; i < 10; i++) { if (i==hledane) { nalezeno=true; break; // pokud se hledané číslo // najde, cyklus už nepokračuje if (nalezeno==true) { System.out.println("Hledané číslo bylo nalezeno."); System.out.println("Hledané číslo nenalezeno."); continue - skáče na konec nejvnitřnější neuzavřené smyčky a tím vynutí další průchod smyčky - cyklus neopouští - od break se liší tím, že z cyklu nevystupuje, pouze přeskočí ještě nevykonané příkazy do konce cyklu - poté přejde zpět na začátek cyklu a pokračuje dalším průchodem cyklu for(int i = 0; i < 10; i++) { if(i == 8) { System.out.println("Ahoj"); // vypíše pouze číslo 8, ale nevypíše Ahoj
php - příklady <meta http-equiv="content-type" content="text/html; charset=utf-8"> <?php echo "WHILE - Vypíše čísla od 0 do 9<br>"; $i=0; while ($i < 10) { $ echo "DO-WHILE - vypíše čísla od 0 do 10<br>"; $i=0; $ while ($i <= 10); echo "FOR - vypíše čísla od 0 do 4<br>"; $n=5; for($i = 0; $i < $n; $i++) { echo "FOREACH - vypíše jednotlivá čísla z pole (od 1 do 9 a 0)<br>"; echo $hodnota; echo "FOREACH - vypíše jednotlivá čísla z pole (od 1 do 9 a 0) a zjistí index prvku z pole<br>"; echo $hodnota; // vypíše obsah prvku $pole[$index] = 100; // do prvku pole uloží hodnotu 100 echo "BREAK - hledání čísla 8<br>"; $hledane=8; $nalezeno=false; for ($i = 1; $i < 10; $i++) { if ($i==$hledane) { $nalezeno=true; break; // pokud se hledané číslo // najde, cyklus už nepokračuje if ($nalezeno==true) { echo "<br>hledané číslo bylo nalezeno."; echo "<br>hledané číslo nenalezeno."; echo "CONTINUE - vypíše pouze číslo 8, ale nevypíše Ahoj<br>"; for($i = 0; $i < 10; $i++) { if($i == 8) { echo "Ahoj";
java - příklady public class cykly { public static void main(string[] args) { System.out.println("WHILE - vypíše čísla od 0 do 9\n"); while (i < 10) { System.out.println("DO-WHILE - vypíše čísla od 0 do 10\n"); i=0; while (i <= 10); System.out.println("FOR - vypíše čísla od 0 do 4\n"); int n=5; for(i = 0; i < n; i++) { System.out.println("FOREACH - vypíše jednotlivá čísla z pole (od 1 do 9 a 0)\n"); int[] a={1,2,3,4,5,6,7,8,9,0; for(int b : a){ System.out.println("FOREACH - vypíše jednotlivá čísla z pole (od 1 do 9 a 0) a zjistí index prvku z pole\n"); int[] aa={1,2,3,4,5,6,7,8,9,0; for (i = 0; i < aa.length; i++) { int b = aa[i]; System.out.println("BREAK - hledaná čísla 8\n"); int hledane=8; boolean nalezeno=false; for (i = 1; i < 10; i++) { if (i==hledane) { nalezeno=true; break; // pokud se hledană číslo // najde, cyklus uĺľ nepokraäťuje if (nalezeno==true) { System.out.println("\nHledané číslo bylo nalezeno."); System.out.println("\nHledané číslo nenalezeno."); System.out.println("CONTINUE - vypíše pouze číslo 8, ale nevypíše Ahoj\n"); for(i = 0; i < 10; i++) { if(i == 8) { System.out.println("Ahoj");