Podmíněné vykonávání
Řídící konstrukce if příkaz se provede, je-li podmínka splněna if (podmínka) příkaz if (podmínka) příkaz1 příkaz2 příkaz3
Rozvětvení programu if-else pokud je podmínka splněna, provede se akce1, jinak akce2 může být jeden příkaz nebo více příkazů ve složených závorkách if (podmínka) else akce1 akce2
Jako podmínka se u if používá proměnná, vlastnost nebo výraz typu bool. Podmínka se bere jako splněná, je-li hodnota true. Př. podmíněné kreslení
private void panel_paint(object sender, PaintEventArgs e) // Kreslicí plocha panelu a rozměry obrazce Graphics kp = e.graphics; int šířka = panel.clientsize.width - 1; int výška = panel.clientsize.height - 1; // Nakreslíme kříž, pokud uživatel požaduje if (políčkokříž.checked) kp.drawline(pens.cornflowerblue, 0, 0, šířka, výška); kp.drawline(pens.cornflowerblue, 0, výška, šířka, 0); // Nakreslíme čtverec, pokud uživatel požaduje if (políčkočtverec.checked) kp.drawrectangle(pens.cornflowerblue, 0, 0, šířka, výška); // Nakreslíme kružnici, pokud uživatel požaduje if (políčkokružnice.checked) kp.drawellipse(pens.cornflowerblue, 0, 0, šířka, výška); private void všechnapolíčka_checkedchanged(object sender, EventArgs e) // Společná obsluha všech tří zaškrtávacích políček panel.refresh();
Relační operátory V matematice V C# a = b a == b a b a!= b a < b a < b a b a <= b a > b a > b a b a >= b
Př. zjisti, jestli je číslo kladné nebo ne
Př. hádání čísla
pro zajímavost vyhodnocení hry lze zapsat dvěma způsoby if (hádanéčíslo == myšlenéčíslo) MessageBox.Show bool shoda = hádanéčíslo == myšlenéčíslo; if (shoda) MessageBox.Show
Př. stavební spoření Spočti ZVSP jako vklady + úroky + převis ZVSP = základna NE Stará smlouva ANO pro výpočet stavebního spoření Spočti státní podporu jako 15 % ze ZVSP Spočti státní podporu jako 25 % ze ZVSP Podpora větší než 3 000 ANO Podpora větší než 4 500 ANO Podpora = 4 500 NE Podpora = 3 000 NE NE > ZVSP < 20 000 NE ZVSP > 18 000 ANO Převis do dalšího roku bude nulový ANO Převis do dalšího roku = ZVSP 20 000 Převis do dalšího roku bude nulový Převis do dalšího roku = ZVSP 18 000 Konec
Př. ceny vstupného děti a důchodci mají slevu 40 Kč pokud je cena skupinová, je sleva 25 %
Př. program na změnu hesla
Př. program, který se po stisku tlačítka Konec zeptá, jestli chceme opravdu skončit Stisknuté tlačítko lze zjistit z návratové hodnoty MessageBox.Show, kterou je výčet DialogResult, který může mít hodnu např. DialogResult.Yes apod. Upravte program, aby se ptal i při zavření pomocí křížku, Alt-F4 apod. Při zavírání okna nastává událost FormClosing. Zavírání okna lze zrušit pomocí e.cancel = true;
Ternární operátor (nepovinné učivo) v jazyce C# je většina operátorů binárních (+ * / ), ale existuje i ternární string heslo = políčkosilnéheslo.checked? hwe$54c : Jana ; je ekvivalentní zápisu string heslo; if (políčkosilnéheslo.checked) heslo = hwe$54c ; else heslo = Jana ;
Násobné větvení If-else umí jenom dvoucestné větvení, pokud putřebujeme více cest, vznikají celé kaskády if-else switch (proměnná) case hodnota_proměnné: příkazy break; case hodnota_proměnné: příkazy break; case hodnota_proměnné: příkazy break;...
př. převádění znaků do Morseovy abecedy private void tlačítkopřeveďdomorseovky_click(object sender, EventArgs e) string převedenýznak; převedenýznak = "neumíme"; switch (polepísmeno.text) case "A": převedenýznak = ".-"; break; case "B": převedenýznak = "-..."; break; case "C": převedenýznak = "-.-."; break; MessageBox.Show(převedenýZnak);
Př. Kvadratická rovnice