Pátý díl přináší do placu zcela neočekávaně (:-)) některé řídící struktury, které lze v éčku zahlídnout. Konkrétně to jsou FOR-ENDFOR, WHILE-ENDWHILE, REPEAT-UNTIL, LOOP-ENDLOOP a SELECT-CASE-ENDSELECT.
Příkaz for (FOR)
FOR, TO, STEP, DO, ENDFOR
syntaxe: | FOR <proměnná> := <výraz> TO <výraz> STEP <krok> DO <příkaz> |
nebo: | FOR <proměnná> := <výraz> TO <výraz> STEP <krok>
<příkazy> ENDFOR |
Příklad:
FOR a:=1 TO 10 DO WriteF('\d\n',a) | -> vypíše čísla 0 až 10 na samostatných |
-> řádcích |
syntaxe: | WHILE <výraz> DO <příkaz> |
nebo: | WHILE <výraz> <příkazy> ENDWHILE |
syntaxe: | REPEAT [<příkaz(y)>] UNTIL <výraz> |
syntaxe: | LOOP <příkazy> ENDLOOP |
syntaxe: | SELECT <proměnná> |
[ CASE <výraz nebo konstanta> <příkaz(y)> ] [ CASE <výraz> <příkaz(y)> ] /* CASE bloků může být kolik chcete */ [ DEFAULT <příkaz(y)> ] ENDSELECT |
Další možností, která je v éčku u příkazu SELECT je zadání rozsahu hodnot, podle kterého se pak provádí vlastní větvení. Za jednotlivými CASE se pak neuvádí rozhodovací výraz, ale seznam konstant (jejichš hodnoty jsou v mezích rozsahu)a podle nich se pak vybírají příslušné větve.
Formát zápisu je trošku odlišný od původního:
SELECT <max. rozsah> OF <výraz>
CASE <konstanta>, ..., <konstantan> -> vyjmenování
nebo CASE <konstanta1> TO <konstanta2> -> interval
Příklad:
SELECT 128 OF FgetC(vstup) ->FgetC je z dos.library v36+ ;bufferovaný čtení znaku
CASE "\n","\b"
WriteF('řádkování\n')
CASE "\t"," "
WriteF('bílý znak\n')
CASE "0" TO "9"
WriteF('číslice\n')
CASE "A" TO "Z", "a" TO "z", "_"
WriteF('alfa-znaky\n')
DEFAULT
WriteF('nějaký další znak\n')
ENDSELECT
Větev DEFAULT se provede jak tehdy, když žádná CASE nevyhovuje, tak i když hodnota vybočí ze zadaného intervalu (v našem případě vše >= 128 a < 0).
Pro dnešek vše. Koukněte na AE-Prakticky a čau!
E.N.I.F.
AMIGA E - Prakticky |
Vokecávky | Hardware | Warez | WBoviny | Dema | Gfx&Muz | Pařby | Vokecávky 2 |