Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

8. Příkazy, prázdný příkaz, výrazový příkaz, blok (složený příkaz), příkazy umožňující větvení algoritmu.

Příkazy, prázdný příkaz, výrazový příkaz:
Výraz: a * b + 5
Přiřazení: c = a* b + 5
Příkaz: c = a * b + 5;

Blok:
Syntaxe bloku je velice jednoduchá. Blok začíná otevírací složenou závorkou a končí zavírací složenou závorkou. Mezi těmito závorkami mohou být libovolné jiné příkazy včetně dalších bloků. Kromě toho mohou být ještě na začátku bloku, tedy před prvním příkazem, lokální deklarace a definice. Proměnné (a další objekty) takto definované jsou pak viditelné pouze uvnitř bloku a v dalších vnořených blocích.

Blok je v C++ chápán jako jediný příkaz a proto se také dá použít všude tam, kde je možné použít příkaz. Blok se také často označuje pojmem složený příkaz.

{ int i;
DelejNeco(i);
{ DelejJesteNeco(i);
}
}

Příkazy umožňující větvení algoritmu:
Pozn.: K větvení algoritmu se dají použít kromě if, switch a goto klidně i cykly, ale myslím, že to není jejich hlavní účel, takže je do této otázky nezahrnuji a navíc jsou hned v další otázce. Příkaz if je pouze zkopírován z otázky č. 3.
K větvení algoritmu slouží hlavně příkazy if, switch a goto.
příkaz if:
if (výraz) příkaz;
if (výraz) {
blok příkazů;
}else{
další blok příkazů;
}

Příkaz if slouží k větvení programu. Nejdřív se vyhodnotí výraz. Pokud je hodnota, vzniklá jeho vyhodnocením, nenulová nebo true, provede se to co následuje za kulatou závorkou. Tzn. Buď jeden příkaz a nebo blok příkazů. V opačném případě, kdy je výraz vyhodnocen jako nula nebo false, se příkaz neprovede. Pokud následuje za příkazem else provede se následující příkaz(blok příkazů).
příkaz skoku goto
Použití goto se lze vždy vyhnout, a proto se používá pouze v ojedinělých případech, kdy by se program bez jeho použití značně znepřehlednil.
goto návěští;
.
.
.
návěští: příkaz;
Provedením příkazu goto se vykonávání programu přesune na příkaz, před kterým je uveden odpovídající identifikátor návěští následovaný dvojtečkou. Návěští nemusí být předem deklarováno, a protože pro návěští je vyhrazen vlastní jmenný prostor, mohou být jejich identifikátory shodné s identifikátory obyčejných proměnných.
příkaz mnohonásobného větvení – switch
Pokud potřebujeme tok programu větvit do více jak dvou směrů, můžeme místo několika do sebe vnořených příkazů if využít možností, které nám v C poskytuje příkaz switch.
switch (výraz)
{
case konstantní_výraz: příkazy
case konstantní_výraz: příkazy
.
.
.
default: příkazy
}
při provádění příkazu switch je nejdříve vyhodnocen výraz a pak se postupně vyhodnocují konstantní_výrazy v návěštích case. V případě, že je nalezeno návěští, kde je konstantní_výraz roven hodnotě výrazu, začnou se provádět všechny příkazy uvedené za tímto návěštím až do konce příkazu switch. To ale znamená, že se provedou i všechny příkazy v následujících větvích. Pokud tedy chceme, aby se provedla vždy jen jedna větev, lze vykonávání příkazu switch okamžitě zastavit uvedením příkazu break. Aby tedy byl příkaz switch funkčně stejný jako obdobný Pascalský příkaz case, je nutné jako poslední příkaz v každé větvi uvést příkaz break.
Pokud není nalezena žádná vyhovující větev, skočí se na návěští default (pokud je použito).
int c;
.
.
switch (c)
{
case 1:
case 2:
case 3: printf ("Cislo 1, 2, nebo 3"); break;
case 4: printf ("Cislo 4"); break;
default: printf ("Jine cislo, nez 1,2,3 nebo 4"); break;
}

Žádné komentáře:

Okomentovat