Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
ccpp:vetveni [2019/10/10 14:20] – durdilova | ccpp:vetveni [2019/10/10 15:10] (aktuální) – durdilova | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Větvení programu | ====== Větvení programu | ||
- | K větvení programu slouží příkazy **if** a **switch**. | + | K větvení programu slouží příkazy **[[ccpp: |
- | Příkaz **if** umožňuje větvit program na základě nějaké podmínky. | + | Příkaz **[[ccpp: |
- | Úplný rozhodovací příkaz umožňuje zapsat příkazy, které se provedou v případě, že podmínka je splněna, a jiné příkazy, které se provedou v případě že podmoínka splněna není. | + | Příkaz **[[ccpp: |
- | + | ||
- | Neúplný rozhodovací příkaz umožňuje zapsat příkazy, které se provedou v případě, že podmínka je splněna. Pokud podmínka splněna není, neprovede se nic a program pokračuje dál. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Příkaz **if** umožňuje větvit program na základě | + | |
- | + | ||
- | + | ||
- | Větvění programu umožňuje, aby program prováděl různé příkazy na základě Pro větvení programu slouží rozhodovací příkazy **if** (může být buď úplný nebo neúplný) a příkaz **case**. | + | |
- | + | ||
- | Pokud potřebujeme větvit program do dvou větví na základě nějaké logické podmínky, použijeme příkaz **if**. | + | |
- | Pokud se mají provést nějaké příkazy v případě, že podmínka platí, a v případě, že podmínka neplatí, nechceme provést žádný příkaz, použijeme **neúplný rozhodovací příkaz if**. Jinak použijeme **neúplný rozhodovací příkaz if**. | + | |
- | + | ||
- | Pokud potřebujeme větvit program | + | |
- | Pokud potřebujeme větvit program do více větví na základě hodnot nějakého selektoru, použijeme příkaz case. | + | |
- | + | ||
- | ===== Úplný rozhodovací příkaz ===== | + | |
- | Úplný rozhodovací příkaz obsahuje části: | + | |
- | * hlavička s logickou podmínkou | + | |
- | * tělo cyklu | + | |
- | * příkaz nebo blok příkazů, které budou provedeny, pokud je podmínka splněna | + | |
- | * příkaz nebo blok příkazů, které budou provedeny, pokud je podmínka splněna není | + | |
- | + | ||
- | ===== Syntaxe úplného rozhodovacího příkazu ===== | + | |
- | <code c> | + | |
- | // S jedním příkazem v těle | + | |
- | if (podmínka) | + | |
- | prikaz1; | + | |
- | else | + | |
- | | + | |
- | + | ||
- | // S blokem příkazů v těle | + | |
- | if (podmínka) | + | |
- | { | + | |
- | prikaz1a; | + | |
- | prikaz1b; | + | |
- | //... | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | prikaz2a; | + | |
- | prikaz2b; | + | |
- | //... | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Poznámky ==== | + | |
- | * Středník ukončuje až celý příkaz if, za hlavičku se středník nepíše. | + | |
- | * Pokud je v kladné nebo záporné větvi více příkazů než jeden, musí se příkazy uzavřít do složených závorek. | + | |
- | * V případě, že potřebujeme definovat odlišná chování pro více hodnot než 2, můžeme použít vnořený rozhodovací příkaz. | + | |
- | + | ||
- | ===== Průběh rozhodovacího příkazu ===== | + | |
- | - **vyhodnocení podmínky** | + | |
- | - podmínka platí | + | |
- | - **vykonání první skupiny příkazů** | + | |
- | - podmínka neplatí | + | |
- | - **vykonání druhé skupiny příkazů za else** | + | |
- | + | ||
- | ==== Výpis textu, zda celé číslo x je liché nebo sudé ==== | + | |
- | <code c> | + | |
- | if (x % 2 == 0) | + | |
- | printf(" | + | |
- | else | + | |
- | printf(" | + | |
- | </ | + | |
- | + | ||
- | ===== Syntaxe neúplného rozhodovacího příkazu ===== | + | |
- | <code c> | + | |
- | // S jedním příkazem v těle | + | |
- | if (podmínka) | + | |
- | prikaz1; | + | |
- | + | ||
- | // S blokem příkazů v těle | + | |
- | if (podmínka) | + | |
- | { | + | |
- | prikaz1a; | + | |
- | prikaz1b; | + | |
- | //... | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Průběh neúplného rozhodovacího příkazu ===== | + | |
- | - **vyhodnocení podmínky** | + | |
- | - podmínka platí | + | |
- | - **vykonání první skupiny příkazů** | + | |
- | - podmínka platí | + | |
- | - **program pokračuje vykonáváním dalších příkazů za příkazem rozhodovacím** | + | |
- | ==== Výpočet absolutní hodnoty čísla y = |x| ==== | + | |
- | <code c> | + | |
- | float y = x; | + | |
- | if (x < 0) | + | |
- | y = -y; | + | |
- | </ | + | |
- | + | ||
- | ==== Seřazení dvou hodnot podle velikosti ==== | + | |
- | <code c> | + | |
- | if (a > b) // Podmínka | + | |
- | { | + | |
- | int pomoc = a; | + | |
- | a = b; | + | |
- | b = pomoc; | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Větvení programu do více větví ===== | + |