for proměnná := výraz1 to výraz2 do příkaz
for proměnná := výraz1 downto výraz2 do příkaz
proměnná - identifikátor proměnné ordinálního typu (integer, char, boolean), řídící proměnná cyklu
výraz1, výraz2 - výrazy kompatibilní s typem řídící proměnné
přepis pomocí známých konstrukcí:
|
for proměnná := výraz1 to výraz2 do příkaz |
for proměnná := výraz1 downto výraz2 do příkaz; |
|
proměnná := výraz1; pom := výraz2; while proměnná <= pom do begin příkaz; proměnná:=succ(proměnná) end; |
proměnná := výraz1; pom := výraz2; while proměnná >= pom do begin příkaz; proměnná:=pred(proměnná) end; |
· tělo cyklu nemusí proběhnout
· hodnoty výrazů se počítají pouze 1x (časová efektivita) - změna proměnných v nich obsažených neovlivní počet průchodů cyklem
· nedoporučuje se měnit hodnotu řídící proměnné uvnitř cyklu (standard Pascalu uvádí, že to nejde)
· podle standardu nemá řídící proměnná po ukončení cyklu definovanou hodnotu
· počet průchodů cyklem je jednoznačně určen před prvním vstupem do cyklu (lze vyskočit příkazem skoku, ale zatím zakazuji)
Sestavte program, který vytiskne na obrazovku 5x slovo „POCITAC“.
for I:=1 to 5 do writeln(‘POCITAC’)
Lze i jinak, např.:
for I:=0 to 4 do writeln(‘POCITAC’)
nebo
for I:=5 to 1 downto writeln(‘POCITAC’)
· upravte program tak, že opakovaný text a počet opakování se zadá z klávesnice
|
while |
repeat |
for |
|
„musíme“ použít, pokud předem neznáme počet průchodů cyklem |
lze použít pokud předem známe počet průchodů cyklem |
|
|
tělo nemusí proběhnout |
tělo proběhne alespoň jednou |
tělo nemusí proběhnout |
vícenásobné větvení, vybírá právě jednu z možností
case výraz of
hodnota1: příkaz;
hodnota2: příkaz;
...
else příkaz
end
· výraz (selektor) - výraz ordinálního typu (ne longint)
· hodnota1, hodnota2 ... - konstanty stejného typu, může jich být více pro 1 příkaz, lze použít i interval
· else příkaz - volitelná část, nemusí být uvedena
· vyhodnocení výrazu
· vyhledání hodnoty výrazu v seznamu hodnot příkazu case a vykonání příslušného příkazu
· pokud hodnota v seznamu není uvedena, provede se příkaz za else, pokud else chybí, neprovede se nic