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ä:

Edellinen | Seuraava