Príkaz For...To...Step...Next
V minulom diele sme podrobne rozoberali tvorbu cyklu pomocou Do...Loop. Tento typ cyklu obvykle využijeme, ak nepoznáme počet iterácii, ktoré sa majú vykonať.
Konštrukcia For...To...Step...Next umožňuje definovať, koľko krát sa cyklus vykoná.
Poďme si pozrieť prvý príklad.
1. príklad: Využitie príkazu For...To...Step...Next
Sub mocninator REM začiatok procedúry
Vstup% = InputBox("Zadajte celé číslo: ") REM vstup od užívateľa
For n = 0 To 1 Step 1 REM začiatok cyklu
Vysledok = Vysledok * Vstup REM výpočet
Next n REM koniec cyklu a vyhodnotenie, či má pokračovať
Print "Mocnina čísla " & Vstup & " je " & Vysledok REM vypísanie na obrazovku
End Sub REM koniec procedúry
Výsledok: Ak zadá užívateľ napríklad celé číslo 5, tak výsledok je mocnina 5, čiže 25.
Výzva pre užívateľa
Výsledok
Rozbor makra: Cyklus je inicializovaný slovom For, za ktorým nasleduje premenná n.
Rozsah počtu vykonania cyklu je od hodnoty inicializovanej premennej n až po hodnotu definovanú v slove To. Veľkosť skokov je definovaná v slove Step. V našom prípade je to hodnota 1, čiže začne počítať, 0 (prvý cyklus), 1 (druhý cyklus) a cyklus skončí a vykonáva sa makro ďalej.
Zvyšok kódu je už jasný, užívateľské definované číslo sa násobí s výsledkom. Tak dostaneme mocninu rôzneho čísla.
Pozastavme sa ešte nad kľúčovým slovom Next s premennou n. Práve tu dôjde k navýšeniu premennej n o hodnotu definovanej v slove Step. Taktiež Next vyhodnotí, či je v intervale od 0 do 1(v našom konkrétnom prípade).
Príkaz GoTo
Príkaz GoTo využívame na skoky v programe. Najčastejšie sa využíva vtedy, ak je splnená/nesplnená podmienka a potrebujete skočiť na iné miesto vykonávania kódu.
2. príklad: Praktické využitie príkazu GoTo
Sub obvodStvorca REM začiatok procedúry
sirkaHrany = InputBox("Zadajte celočíselnú šírku hrany štvorca") REM vstup od užívateľa
If IsNumeric(sirkaHrany) = False Then GoTo Chyba REM testovanie podmienky
Obvod% = 4 * Cint(sirkaHrany) REM výpočet
Print "Obvod je: " & Obvod REM vypísanie na obrazovku
GoTo Koniec REM využitie príkazu skoku
Chyba: REM kam príkaz GoTo skočí
Print "Fakt mám vás naučiť písať celé čísla?!" REM výpis
Koniec: REM kam príkaz GoTo skočí
End Sub REM koniec procedúry
Výsledok: obvod štvorca, čiže užívateľ zadá napríklad číslo 6, tak obvod štvorca bude 24.
Vstup od používateľa
Výsledok
Rozbor: Užívateľ najprv zadá vstupný udaj, ktorý sa vyhodnotí. Ak užívateľ nezadá číslo, tak GoTo príkaz nasmeruje vykonávanie kódu na inom mieste. V tomto prípade vypíše na obrazovku text a končí. Ak užívateľ zadá číslo, vypočíta sa obvod štvorca a následne GoTo ho presunie vykonávanie programu až na Koniec. To znamená, že ak napíšeme „Chyba:“, tam skočí program, ak za GoTo dáme slovo Chyba.
Ešte si povšimnite prevod z reťazca na číselnú hodnotu pomocou CInt. Pomocou InputBox sme dostali údaj vo forme reťazca, ktorý ale musíme prekonvertovať na celočíselnú hodnotu.
Príkaz Exit
Potrebovali by ste v nejakom vetvení programu ukončiť makro, bez toho aby sa ďalej vykonávalo makro? Použijeme na to príkaz Exit.
Exit sa často využíva v cykloch, kde sú mnoho podmienok a ak jedna nastane, vykoná čo požadujete a skončite makro. Ukážeme si to na príklade, ktorý už poznáte.
3. príklad: Využitie príkazu Exit
Sub obvodStvorca REM začiatok procedúry
sirkaHrany = InputBox("Zadajte celočíselnú šírku hrany štvorca") REM vstup od užívateľa
If IsNumeric(sirkaHrany) = False Then GoTo Chyba REM testovanie podmienky
Obvod% = 4 * Cint(sirkaHrany) REM výpočet
Print "Obvod je: " & Obvod REM výpis na obrazovku
Exit Sub REM ukončenie makra pomocou Exit
Chyba: REM kam skočí príkaz GoTo
Print "Fakt mám vás naučiť písať celé čísla?!" REM výpis na obrazovku
End Sub REM koniec procedúry
V tomto článku využijeme druhý spôsob, ako vytvoriť cyklus v programovaní makier. Tiež si ukážeme príkaz skoku GoTo a
príkaz Exit.











