Etusivu Aloitus Kontrollit Metodit Muuttujat Ohjausrakenteet Silmukat Matematiikka Debuggaus Virheenkäsittely Vuorovaikutus Valikot Tiedostonkäsittely Ikkunat Leikepöytä Drag and Drop Tiedostopäätteet Linkkejä Harjoitukset
For Muuttuja = alku to loppu [Step askel] Suoritettava ohjelmakoodi Next MuuttujaFor -lauseessa on ns. silmukkamuuttuja, jonka arvo muuttuu silmukan jokaisella kierroksella. Yleinen tapa on määritellä silmukkamuuttujan nimeksi jokin lyhyt muuttujanimi kuten i tai x tms. Muuttujalle (tai pikemminkin silmukalle) annetaan alkuarvo josta lähdetäään liikkeelle ja loppuarvo, jonka saavuttamisen jälkeen silmukan suoritus loppuu. Normaalisti silmukkamuuttujan arvoa kasvatetaan yhdellä joka kierroksella. Jos haluamme kasvattaa muuttujan arvoa jollakin muulla arvolla kuin yksi tai haluamme silmukkamuuttujan arvon laskevan, voimme käyttää Step -ominaisuutta joka määrittelee silmukkamuuttujan lisäyksen tai vähennyksen jokaisella kierroksella.
Private Sub Command1_Click() Dim X As Long For X = 1 To 10 MsgBox "Kierros " & X Next X End SubEsimerkki vaatii toimiakseen CommandButton:n asettamista lomakkeelle. Esimerkissämme määrittelemme ensin silmukkamuuttujan X, jonka tyyppi on Long. Tyypiksi kannattaa valita yleensä Long, etenkin jos silmukat ovat suuria ettei muuttujasta lopu arvoalue kesken. Seuraavaksi For -silmukkamme aloittaa arvosta 1, suorittaa ohjelmakoodin (eli näyttöön tulostetaan viestilaatikko jossa lukee "Kierros 1"), kasvattaa muuttujan arvoa yhdellä, tekee vertailun (eli onko muuttujan arvo pienempi kuin 10 mikä on loppuehto) ja suorittaa ohjelmakoodirin jatkaen tätä kunnes muuttuja saa arvon 11 jonka jälkeen silmukan suoritus loppuu.
Seuraavassa esimerkissä käymme silmukkaa läpi ylhäältä alaspäin, eli aloitamme arvosta sata kulkien kohti arvoa 10. Jokaisella kierroksella vähennämme silmukkamuuttujan arvosta kymmenen.
Private Sub Command1_Click() Dim X As Long For X = 100 To 10 Step -10 MsgBox "Kierros " & X Next X End SubLopputuloksena on kymmenen viestiä tyyliin "Kierros 100", "Kierros 90", ... , "Kierros 10" jonka jälkeen silmukan suoritus loppuu.
Silmukka | Selite |
---|---|
Do While (ehtolauseke) Suoritettavat ohjelmakoodirivit Loop | Tämä silmukkarakenne suorittaa ohjelmakoodirivejä niin kauan kuin ehto on tosi, tosin ehdosta riippuen koodirivejä ei välttämättä suoriteta kertaakaan. |
Do Until (ehtolauseke) Suoritettavat ohjelmakoodirivit Loop | Tämä silmukkarakenne suorittaa ohjelmakoodirivejä niin kauan kuin ehto on epätosi, tosin ehdosta riippuen koodirivejä ei välttämättä suoriteta kertaakaan. |
Do Suoritettavat ohjelmakoodirivit Loop While (ehtolauseke) | Tämä silmukkarakenne suorittaa ohjelmakoodirivejä niin kauan kuin ehto on tosi, kuitenkin aina vähintään yhden kerran. |
Do Suoritettavat ohjelmakoodirivit Loop Until (ehtolauseke) | Tämä silmukkarakenne suorittaa ohjelmakoodirivejä niin kauan kuin ehto on epätosi, kuitenkin aina vähintään yhden kerran. |
While (ehtolauseke) Suoritettavat ohjelmakoodirivit WendSilmukkaa suoritetaan niin kauan kuin ehto on tosi.
Dim X As Long X = 1 Do While (X < 11) MsgBox "X:n arvo on " & X, vbInformation X = X + 1 Loop
Dim X As Long X = 1 Do Until X > 10 MsgBox "X:n arvo on " & X, vbInformation X = X + 1 Loop
Dim X As Long X = 1 Do MsgBox "X:n arvo on " & X, vbInformation X = X + 1 Loop While (X < 11)
Dim X As Long X = 1 Do MsgBox "X:n arvo on " & X, vbInformation X = X + 1 Loop Until (X > 10)
Dim X As Long X = 1 While (X < 11) MsgBox "X:n arvo on " & X, vbInformation X = X + 1 Wend