From Wikipedia, the free encyclopedia
Řídicí struktura (též strukturovaný příkaz, anglicky control flow statement) je v informatice konstrukce pro zápis počítačového programu. Řídicí struktury jsou používány ve vyšších programovacích a skriptovacích jazycích. Rozhodují o dalším provádění programu: větví jeho běh, vytváří cykly nebo jinak mění běh programu.
Existují tři druhy struktur programu:
Posloupnost příkazů (sekvence) nevyžaduje existenci speciálních řídicích struktur (ve smyslu příkazů), celá tato konstrukce je prostě tvořena sledem klasických příkazů, které se mají vykonat postupně jeden po druhém (lineárně). U zbývajících dvou konstrukcí se již neobejdeme bez speciálních příkazů, jako jsou GOTO, WHILE, IF-ELSE aj. Tyto prvky tvoří základní stavební kameny strukturovaného programování.
Teorii těchto metodik zpracovali např. Donald Knuth, Niklaus Wirth, Edsger Dijkstra a Hoare.
Podmíněný příkaz a podmíněná konstrukce jsou prostředky programovacího jazyka, které umožňují rozdílné chování programu, v závislosti na specifikované logické podmínce, která je vyhodnocena jako pravda, či nepravda.
IF..GOTO
Forma vyskytující se v nestrukturovaných programovacích jazycích. Napodobuje typickou strojovou instrukci GOTO, která umožňuje skok na určitý řádek kódu.IF..THEN..(ENDIF)
Pokud je podmínka v části IF vyhodnocena jako pravda, je vykonán kód specifikovaný v části THEN. V případě, že je podmínka vyhodnocena jako nepravda, je kód specifikovaný v části THEN vynechán a program pokračuje dále za částí ENDIF.IF..THEN..ELSE..(ENDIF)
Oproti předchozímu výrazu, je v případě vyhodnocení podmínky v části IF jako nepravda vykonán kód specifikovaný v části ELSE.Pascal: | C: | Shell skript: | Python: | PHP: |
---|---|---|---|---|
if a > 0 then begin
writeln("ano")
end else begin
writeln("ne")
end
|
if (a > 0) {
printf("ano");
} else {
printf("ne");
}
|
if [ $a -gt 0 ]
then
echo "ano"
else
echo "ne"
fi
|
if a > 0:
print("ano")
else:
print("ne")
|
if ( $a > 0 ){
echo "ano";
}
else{
echo "ne";
}
|
Příkaz switch (v některých jazycích uveden jako case) porovnává předanou hodnotu s předem specifikovanými konstantami. V případě shody předané hodnoty s definovanou konstantou, vykoná příkaz, nebo příkazy, které jsou definovány za ní. Obvykle tato konstrukce také obsahuje možnost, pro případ, že by shoda nalezena nebyla, nejčastěji ELSE, nebo OTHERWISE. Konstrukce switch může umožnit kompilátoru optimalizace, jako například vyhledávací tabulky. V dynamických jazycích nemusí být případ pro porovnání omezen pouze na konstanty a může být rozšířen do vzorového porovnávání, jako například v shell skriptech, kde regulární výraz '*)
' označuje jakýkoli řetězec.
Pascal: | C: | Shell skript: | Python: | PHP skript: |
---|---|---|---|---|
case nejakyZnak of
'a': akceNaA;
'x': akceNaX;
'y','z':akceNaYneboZ;
else akceVPripadeNeshody;
end;
|
switch (nejakyZnak) {
case 'a': akceNaA; break;
case 'x': akceNaX; break;
case 'y':
case 'z': akceNaYNeboZ; break;
default: akceVPripadeNeshody;
}
|
case $nejakyZnak in
a) akceNaA ;;
x) akceNaX ;;
[yz]) akceNaYNeboZ ;;
*) akceVPripadeNeshody ;;
esac
|
match nejakyZnak:
case "a":
akceNaA
case "x":
akceNaX
case "y" | "z":
akceNaYneboZ
case _:
akceVPripadeNeshody
|
switch ($nejakyZnak){
case 'a':
akceNaA();
break;
case 'x':
akceNaX();
break;
case 'y':
case 'x':
akceNaYneboX();
break;
default:
akceVPripadeNeshody();
}
|
Cyklus nebo také smyčka (angl. loop) je řídicí struktura počítačového programu, kde se opakovaně provádí posloupnost příkazů. Opakování i ukončení cyklu je řízeno nějakou podmínku.
Cyklus se skládá z posloupnosti příkazů a podmíněného skoku, pomocí kterého se cyklus ukončuje při splnění podmínky.
Existují tyto druhy cyklů:
repeat příkaz; until podmínka;
) v případě splnění podmínky ukončen.break
), je tedy možné vytvořit například nekonečný cyklus, uvnitř tohoto cyklu testovat nějakou podmínku a ve vhodné situaci cyklus přerušit.inicializátor; while (podmínka) { příkaz1; příkaz2; … příkazN; inkrement; }
Ve vyšších programovacích jazycích existují pro cykly řídicí konstrukce pro tvorbu programových cyklů. Např. v jazyce C:
while (podmínka) { příkaz1; příkaz2; … příkazN; } do { příkaz1; příkaz2; … příkazN; } while (podmínka); for (inicializátor; podmínka; inkrement) { příkaz1; příkaz2; … příkazN; }
Analogicky k násilnému přerušení cyklu (break, exit), některé programovací jazyky umožňují i skok na další iteraci cyklu (obvykle continue, loop, next).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.