4. Lekce - Usměrňování toku programu

22.06.2013 00:00

Tok programu lze usměrnit několika způsoby

  • Podmínka
  • Cyklus
  • Switch (rozsáhlejší podmínka)

Takže začneme tím nejjednodušším a to je podmínka, která může být také pojmenována jako if...else
Jak už název sám napovídá, podmínka se skládá z IF -> podmínka a ELSE -> pokud není podmínka splněna. větev ELSE není nutné zapisovat (pokud nic neobsahuje). Podmínka může vyplnit jeden příkaz nebo celý blok -> {příkazy} -> proto použijeme složené závorky. Z osobní zkušenosti je lepší používat složené závorky i když podmínka obsahuje jen jeden příkaz, protože tím vytváříte lepší strukturu programu pro čtení a případnou kontrolu a snižujete tím možnost chyby.

if (i == 100)

            {

                MessageBox.Show("Proměnná i obsahuje číslo 100", "100");

            }

            else

            {

                MessageBox.Show("Proměnná i neobsahuje číslo 100", "ne 100");

Další možností usměrnění toku programu je cyklus, který nabízí velký výběr funkcí. Typy cyklů:

  • While (neznáme počet kroků)
  • For (známe počet kroků)
  • Do...While (dělej, doku podmínka platí)
  • Foreach (pro každý prvek v ...)

Cyklus while -> bez předem známého počtu opakování (iterací)
Tento cyklus se využívá při dynamičnosti programu, kdy potřebujete např. zobrazit vaše předem uložené poznámky v aplikaci. Nevíte kolik je přesně těch poznámek, a proto se pro tento může využít cyklus while. Cyklus je tvořen jednou podmínkou, která pokud platí, cyklus se opakuje a složenými závorkami.

while (i <= 100

            {

                MessageBox.Show("Proměnná i neobsahuje číslo 100, proto jsem zobrazen", "ještě není 100");

                i++;

            }

Cyklus for -> předem známý (naprogramovaný) počet iterací
Tento cyklus lze využít při nutně stanoveném počtu opakování. Je tvořen 3 podmínkami -> proměnná musí mít určitou hodnotu pro vstup do cyklu, podmínka pro opakování cyklu, zvýšení proměnné při průchodem cyklu. Cyklus je zaobalen jako blok příkazů.

for (i = 0; i <= 100; i++ )

            {

                MessageBox.Show("Tento dialog je zobrazen po " + i + ".","100 zobrazeni");

            }

Cyklus Do ... while -> provede se i když podmínka není splněna
Také by se mohl nazvat obrácený cyklus while. Je tvořen podmínkou na konci. Cyklus se provede, i když není podmínka splněna, a proto může způsobit pád programu, ale dá se využít na místech, kde je pád téměř možné vyloučit (nic mě nyní nenapadá). Stejně jako while je tvořen složenými závorkami.

do

            {

                MessageBox.Show("Proměnná i neobsahuje číslo 100, proto jsem zobrazen", "ještě není 100");

                i++;

            }

            while (i <= 100);

Cyklus Foreach -> pro každý prvek v poli, matici, ...
Jak už sám název napovídá, bude cyklus plnit příkazy pro každý prvek. Tato forma usměrnění je velmi efektivní při práci se soubory a jinými výstupy. Podmínka je tvořena stylem jednorozměrné proměnné (např. int) v nějakém poli (v našem případě int[]) -> foreach(int xxx in yyy), kde yyy je typu int[]. Vše je pak ohraničeno závorkami (složenými).

foreach(string jmena in kalendar)

            {

                MessageBox.Show("Na řadě je jméno: " + jmena, "Svátky");

            }

Posledním a myslím si že i nejtěžším způsobem úpravy programu je Switch, který lze označit jako mnohonásobnou podmínku. Mže být vytvořen pro číselné typy, char ale i pro string. Tím nám dává další možnost při rozvoji a tvorbě programu. Switch je tvořen podmínkou a složenými závorkami. Do nich se poté píšou CASE větve, které obsahují "škatulku" pro shodující se výraz. Case je potom ukončen příkazem BREAK. Určitě se ale také vyskytne případ, kdy vám nebude výraz sedět do žádného case, proto je zde i DEAFULT větev, která se provede vždy, když program nenajde shodný parametr. Default je tvořen stejně jako case.

switch (rok)

            {

                case 1000:

                    MessageBox.Show("Proměnná rok obsahuje číslo 1000", "1000");

                    break;

 

                case 100:

                    MessageBox.Show("Proměnná rok obsahuje číslo 100", "100");

                    break;

 

                case 10:

                    MessageBox.Show("Proměnná rok obsahuje číslo 10", "10");

                    break;

 

                case 1:

                    MessageBox.Show("Proměnná rok obsahuje číslo 1", "1");

                    break;

 

                default:

                    MessageBox.Show("číslo nebylo identifikováno", "???");

                    break;

            }

<-- Předchozí lekce - 3. lekce - Ovládací prvky Další lekce - 5. lekce - Pole -->

Pok ud máte otázky, pište na naši adresu, Faceb ook nebo na Twi tter.

Štítky
:
, Programování, Základy programování