Kombinera For To med If Then

If Then Else While

Antag att vi vill göra högst 10 slumptal, men om talet blir lika med 6 skall det inte göras fler. Då skall i stället For-slingan avbrytas.

Lägg ut en knapp och en listbox och ge knappen koden:

Dim tal,i As Integer
Randomize()

For i = 1 To 10
   tal = Int(Rnd() * 6) + 1

   If tal <= 5 Then
      ListBox1.Items.Add(tal)
   Else
      MsgBox("Tal nummer" & i & " blev en sexa")
      Exit For
   End If

Next i

Förklaring

Vi behöver nu två variabler och eftersom båda är av typen Integer kan vi skriva dem på samma Dim-rad med kommatecken emellan. I VB6 fick man skriva Dim tal As Integer, I As Integer. Det är alltså litet enklare nu.

När vi kommer in i For-slingan görs ett slumptal mellan 1 och 6. Med en If-sats kollas värdet på slumptalet. Om det är mindre än eller lika med 5 läggs det i listboxen. Annars kommer ett meddelande om vilket tal, alltså vilket värde på variabeln i, som var en sexa och sedan Exit For som betyder att For-slingan skall avbrytas.

Är talet inte 6 går slingan ned till next i, som då räknas upp med 1. Sedan börjar slingan om med ett nytt slumptal. Det upprepas 10 gånger om ingen sexa slumpats fram.

If Then Else While

© SupportData.Net