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