Zpět na seznam článků     Číst komentáře (7)     Verze pro tisk

C# - 4.díl - Větvení programu

Autor: sukovanej   
27.10.2012

V tomto díle o programování v jazyce C# si ukážeme, jak používat rozhodovací struktury a větvit tak podmíněně chod programu.


Podmínky If

Podmínky If jsou nejpoužívanějším způsobem větvení programu. Zapisují se následovně

Podmínky If
  1. if (podmínka)
  2. {
  3.   příkaz;
  4.   příkaz;
  5.   a další příkazy;
  6. }

Podmínka na první řádku je matematicky zapsaný výrok. Např. od uživatele získáme jméno v podobě textové proměnné. Když chceme zjistit, jestli je to jméno Martin, sestavíme podmínku následovně :

Příklad 1
  1. string a; // Proměnná, s níž budeme pracovat
  2. if (a == "Martin")
  3. {
  4.   MessageBox.Show("Uvedené jméno je Martin !");
  5. }

Kdybychom tento kód zkompilovali, tak by samozřejmě buď vyhodil chybu, nebo by se nic neprovedlo. Proměnná a totiž nemá definovanou žádnou hodnotu. Buď bychom ji určili napevno, nebo ji získali od uživatele skrze komponentu (textBox, například).

Z příkladu výše je také doufám jasné, že kód, který je mezi složenými závorkami, se provede v případě, kdy podmínka (a == "Martin") platí. Velký pozor je také třeba dávat na to, že pro porovnání dvou hodnot se při rovnosti nepoužívá rovnítko (=), ale dvě rovnítka (==) a to ze zcela evidentního důvodu. Rovnítko jako takové už má definovanou funkci, přiřazování (viz. minulý díl).

Porovnávání hodnot

Pokud dvě hodnoty porovnáváme, používáme k tomu běžně známou matematickou symboliku.

  • Rovno ==
  • Menší <
  • Větší >
  • Menší nebo rovno <=
  • Větší nebo rovno >=
  • Různé (nerovnost) !=

Při porovnávání také musíme dávat pozor na datové typy porovnávaných hodnot. Nemůžeme porovnávat např. text s číslem. Za předpokladu, že je textový řetězec tvořen prvky číslic, můžeme ho převést na číselný datový typ a ten potom porovnávat, ale jinak ne.

Složené podmínky

Složené podmínky se používají, pokud předpokládáme více různých výsledků. Pokud se vrátíme k našemu příkladu se jmény, můžeme například podmínku pro jméno Martin nechat vypsat text a pro jméno Milan jiný text.

K naší struktuře If jen přidáme strukturu else if, která se liší pouze v tom, že namísto if napíšeme else if.

Příklad 2
  1. string a; // Proměnná, s níž budeme pracovat
  2. if (a == "Martin")
  3. {
  4.   MessageBox.Show("Uvedené jméno je Martin !");
  5. }
  6. else if (a == "Milan")
  7. {
  8.   MessageBox.Show("Uvedené jméno je Milan, ne Martin !");
  9. }

Abychom mohli s pomocí podmínek ošetřit úplně všechny možnosti, které mohou nastat, potřebujeme ještě jednu konstrukci, která se postará o provedení kódu v případě, že neplatí žádná z výše uvedených podmínek. Tato konstrukce se značí else a nemá samozřejmě žádnou podmínku

Opět v interpretaci s našimi jmény bychom vytvořili nějaký takovýto zdrojový kód.

Příklad 3
  1. string a; // Proměnná, s níž budeme pracovat
  2. if (a == "Martin")
  3. {
  4.   MessageBox.Show("Uvedené jméno je Martin !");
  5. }
  6. else if (a == "Milan")
  7. {
  8.   MessageBox.Show("Uvedené jméno je Milan, ne Martin !");
  9. }
  10. else
  11. {
  12.   MessageBox.Show("Uvedené jméno není Milan, ani Martin !");
  13. }

Příklad nakonec

Dnešní příklad již nebude mít daleko k jednoduché hře. Budeme generovat náhodná čísla v rozhraní od 0 do 10 a uživatele necháme hádat, o jaké číslo se jedná.

Uživatelské rozhraní bude tvořit jedno tlačítko a jedno textové pole, do kterého uživatel bude zadávat jeho tipy. Vytvořme událostní proceduru kliknutí na tlačítko (onClick) a jdeme programovat.

Algoritmus není nikterak složitý. Nejdříve vygenerujeme náhodou hodnotu a uložíme si ji do proměnné (např. i). Potom porovnáme hodnoty textového pole (textBox1.Text) a naší proměnné a s pomocí vyskakovacího okna necháme uživateli vypsat, jestli se trefil, nebo ne.

Příklad 3
  1. int i = new Random().Next(0, 10);
  2. if (Convert.ToInt32(textBox1.Text) == i)
  3. {
  4.   MessageBox.Show("Trefa, dobrá práce !");
  5. }
  6. else
  7. {
  8.   MessageBox.Show("To není ono, zkus to ještě jednou !");
  9. }

na závěr

K tomuto dílu je to vše. Za domácí úkol si můžete vyzkoušet například sestrojitelnost trojúhelníku, nebo vylepšit dnešní ukázkový příklad o zaznamenávání výsledků a na jejich základě sestavovat statistiky.


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 2.4/5

1  2  3  4  5    
(známkování jako ve škole)