Řídící struktury programu

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Cyklus for each: Odkaz na Java_Kontejnery)
(Podmíněný příkaz: Doplnění složeného větvení.)
Řádka 61: Řádka 61:
 
  }
 
  }
  
 +
=== Vícenásobné větvení ===
 +
* Můžeme opakovaně použít konstrukci <code>else if</code>:
  
 +
if (''PODMÍNKA'') ''PŘÍKAZ''
 +
else if (''PODMÍNKA'') ''PŘÍKAZ''
 +
...
 +
else if (''PODMÍNKA'') ''PŘÍKAZ''
 +
else ''PŘÍKAZ''
  
 +
''PŘÍKAZ'':
 +
# <code>{ ''posloupnost příkazů'' }</code>
 +
# <code>''jeden příkaz'' ;</code>
  
 +
''PODMÍNKA''
 +
* Zápis podmínek viz [[Podmíněný výraz]].
 +
 +
; Příklad Java
 +
int denTydne;
 +
...
 +
DenTydne vysledek = null;
 +
/* Třída DenTydne je společným předkem tříd
 +
  *  Pondeli, Utery, Streda, Ctvrtek, Patek a Sobota.
 +
  */
 +
if (denTydne == 0) vysledek = new Nedele();
 +
else if (denTydne == 1) vysledek = new Pondeli();
 +
else if (denTydne == 2) vysledek = new Utery();
 +
else if (denTydne == 3) vysledek = new Streda();
 +
else if (denTydne == 4) vysledek = new Ctvrtek();
 +
else if (denTydne == 5) vysledek = new Patek();
 +
else vysledek = new Sobota();
 +
 +
; Úkol
 +
* Dostanete pořadové číslo měsíce.
 +
* Vypište na obrazovku text: <code>Dnes je jaro|léto|podzim|zima.</code>
 +
* Předpokládejte, že zimní měsíce jsou leden, únor a březen, jarní měsíce duben, květen a červen atd.
  
 
== Cyklus <code>for</code> ==
 
== Cyklus <code>for</code> ==

Verze z 7. 6. 2016, 06:43


Obsah

Řídící struktury programovacích jazyků Java a PHP

Počítače von Neumannova typu provádí instrukce v takovém pořadí, v jakém jsou v operační paměti uloženy. Pokud chceme toto chování změnit, musíme použít speciální instrukci skoku. Ve vyšších programovacích jazycích se používají pro přehlednější zápis ustálené řídící struktury.

Řídící struktury vyšších programovacích jazyků:

Dále uvádíme základní popis použití nejběžnějších řídících struktur. Jsme si vědomi, že následující text je velmi zjednodušený!



Podmíněný příkaz

Zápis:

if (PODMÍNKA) PŘÍKAZ [ else PŘÍKAZ ];

Příklady PHP

 if ($vek < 15) {
     echo "POZOR! Přístupné až od 15 let!";
 }
 if ($hotovost > $cena) {
     $hotovost -= $cena;
 } else {
     die("Nákup nelze provést! Nemáme dostatek peněz.");
 }

Příklady Java

if (vek < 15) {
    System.out.println("POZOR! Přístupné až od 15 let!");
}
if (zakaznik.getHotovost() > cena) {
    zakaznik.zaplat(cena);
} else {
    System.err.println("Nákup nelze provést! Nemáme dostatek peněz.");
}

Vícenásobné větvení

if (PODMÍNKA) PŘÍKAZ
else if (PODMÍNKA) PŘÍKAZ
...
else if (PODMÍNKA) PŘÍKAZ
else PŘÍKAZ

PŘÍKAZ:

  1. { posloupnost příkazů }
  2. jeden příkaz ;

PODMÍNKA

Příklad Java
int denTydne;
...
DenTydne vysledek = null;
/* Třída DenTydne je společným předkem tříd
 *  Pondeli, Utery, Streda, Ctvrtek, Patek a Sobota.
 */
if (denTydne == 0) vysledek = new Nedele();
else if (denTydne == 1) vysledek = new Pondeli();
else if (denTydne == 2) vysledek = new Utery();
else if (denTydne == 3) vysledek = new Streda();
else if (denTydne == 4) vysledek = new Ctvrtek();
else if (denTydne == 5) vysledek = new Patek();
else vysledek = new Sobota();
Úkol

Cyklus for

Zápis:

for (INICIALIZACE; PODMÍNKA; ÚPRAVA_ČÍTAČE) PŘÍKAZ;

Cyklus for je v PHP a Javě hodně obecný, obvykle se ale používá tak, že definujeme řídící proměnnou (třeba i), která postupně nabývá hodnot od 0 do maximální hodnoty. Pro každou hodnotu řídící proměnné pak provádíme příkaz, který obvykle tuto hodnotu nějak využívá.

Řídící proměnné se někdy také říká „čítač“.

Příklady PHP

 for ($i = 0; $i < 15; $i++) {
     echo "<p>Průchod číslo $i.</p>";
 }

Tento příklad vlastně provede následující kód:

 $i = 0;
 echo "<p>Průchod číslo $i.</p>"; // $i == 0
 $i++;
 echo "<p>Průchod číslo $i.</p>"; // $i == 1
 $i++;
 .
 :
 :
 echo "<p>Průchod číslo $i.</p>"; // $i == 13
 $i++;
 echo "<p>Průchod číslo $i.</p>"; // $i == 14
 $i++;

Dále už je hodnota $i == 15, takže není splněna podmínka $i < 15 a tedy se provádění cyklu ukončí.


Příklady Java

for (int i = 0; i < 15; i++) {
    System.out.println("Průchod číslo "+i+".");
}



Cyklus for each

Cyklus while

Zápis:

while (PODMÍNKA) PŘÍKAZ;

Cyklus while provádí zadaný PŘÍKAZ tak dlouho, dokud je splněna PODMÍNKA.

Pozn.: Cyklus for jazyků Java a PHP lze přepsat pomocí cyklu while následujícím způsobem:

INICIALIZACE;
while (PODMÍNKA) {
    PŘÍKAZ;
    ÚPRAVA_ČÍTAČE;
}

Příklady PHP

 $i = 0;
 while ($i < 15) {
     echo "<p>Průchod číslo $i.</p>";
     $i++;
 }

Tento příklad vlastně provede následující kód:

 $i = 0;
 echo "<p>Průchod číslo $i.</p>"; // $i == 0
 $i++;
 echo "<p>Průchod číslo $i.</p>"; // $i == 1
 $i++;
 .
 :
 :
 echo "<p>Průchod číslo $i.</p>"; // $i == 13
 $i++;
 echo "<p>Průchod číslo $i.</p>"; // $i == 14
 $i++;

Dále už je hodnota $i == 15, takže není splněna podmínka $i < 15 a tedy se provádění cyklu ukončí.

Příklady Java

int i = 0;
while (i < 15) {
    System.out.println("Průchod číslo "+i+".");
    i++;
}


Cyklus do while

Příkaz switch

Cvičení

1. Hodnoty funkce

2. Průchod pole



Zdroje:

  1. The Java Tutorials [online]. 1995, 2011 [cit. 2011-06-07]. Control Flow Statements.
    Dostupné z WWW: <http://download.oracle.com/javase/tutorial/java/nutsandbolts/flow.html>.
  2. ARCANIS. Výuka PHP a MySQL [online]. Třeboň : 2008 [cit. 2011-06-07]. Řídící struktury.
    Dostupné z WWW: <http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_5>.
  3. ARCANIS. Výuka PHP a MySQL [online]. Třeboň : 2008 [cit. 2011-06-07]. Cykly.
    Dostupné z WWW: <http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_6>.
Související stránky
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje