Luku 3
For
-silmukka
For
-silmukka käy läpi joukon lukuja
ja toistaa joka luvun kohdalla tietyn koodin.
Seuraava koodi tulostaa luvut 1–5:
For i = 1 To 5
Print i
Next i
Koodin tuloksena on:
1
2
3
4
5
Ideana on, että muuttujan i
arvo on ensin 1, sitten 2, jne. lukuun 5 asti.
Viestin toisto
Seuraava koodi toistaa viestiä tietyn määrän kertoja:
Dim viesti = "Moikka!"
Dim maara = 3
For i = 1 To maara
Print viesti
Next i
Koodin tuloksena on:
Moikka!
Moikka!
Moikka!
Tässä muuttujan i
sisältö ei näy mitenkään
ohjelman käyttäjälle.
Summan laskeminen
Seuraava koodi laskee, paljonko on 1 + 2 + 3 + ... + 100:
Dim summa = 0
For i = 1 To 100
summa = summa + i
Next i
Print "Tulos: " & summa
Koodin tuloksena on:
5050
Ideana on, että koodi lisää kaikki muuttujan i
saamat arvot muuttujaan summa
.
Lukuvälin valinta
For
-silmukan lukuväli voi olla monenlainen:
-
For i = 1 To 100
luvut 1, 2, 3, ..., 100
-
For i = 1 To 100 Step 3
luvut 1, 4, 7, ..., 100 (askel 3)
-
For i = 100 To 1 Step -1
luvut 100, 99, 98, ..., 1 (alaspäin)
Satunnaisuus
Komennon Rnd
avulla voi arpoa
satunnaisluvun.
Seuraava koodi tulostaa satunnaisen
kokonaisluvun väliltä 1–10:
Print Rnd(1, 10)
Tuloksena voi olla:
8
Nopanheitto
Seuraava koodi heittää noppaa 5 kertaa:
For i = 1 To 5
Print Rnd(1, 6)
Next i
Tuloksena voi olla:
3
6
6
5
2
Laskuvisa
Seuraava ohjelma kysyy käyttäjältä joukon
kertolaskutehtäviä.
Ohjelma arpoo kysyttävät laskut,
joten laskuvisa on joka kerralla erilainen.
Dim maara = 5
Dim pisteet = 0
Message "Kysyn sinulta " & maara & " kertolaskua."
For i = 1 To maara
Dim a = Rnd(1, 10)
Dim b = Rnd(1, 10)
Dim c = InputNumber("Paljonko on " & a & "*" & b & "?")
If a*b = c Then
Message "Oikein!"
pisteet = pisteet + 1
Else
Message "Väärin!"
EndIf
Next i
Message "Sait pisteitä: " & pisteet
Silmukan joka kierroksella ohjelma arpoo muuttujiin
a
ja b
kokonaisluvun väliltä 1–10.
Sitten ohjelma kysyy laskun käyttäjältä
ja tarkistaa, vastasiko käyttäjä oikein.
Ohjelman suoritus voi näyttää tältä: