Difference between revisions of "NO/Documentation/BASIC Guide/Branching"
(Created page with '{{DISPLAYTITLE:Flytkontroll}} {{NO/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NO/Documentation/BASIC Guide/Operators |NextPage=NO/Documentat…') |
|||
| Line 27: | Line 27: | ||
</source> | </source> | ||
Resultatet blir det samme. | Resultatet blir det samme. | ||
| − | + | Mer kompakt kode er mulig: | |
| + | <source lang="oobas"> | ||
| + | If alder < 18 Then barneTrygd = True | ||
| + | </source> | ||
| + | |||
| + | Hvis en har flere enn to mulige blokker brukes | ||
| + | ElseIf, så mange en vil: | ||
<source lang="oobas"> | <source lang="oobas"> | ||
If inntekt < 200000 Then | If inntekt < 200000 Then | ||
| Line 33: | Line 39: | ||
ElseIf inntekt < 300000 Then | ElseIf inntekt < 300000 Then | ||
skatteProsent = 0.25 | skatteProsent = 0.25 | ||
| − | Else | + | ElseIf inntekt < 400000 Then |
| − | skatteProsent = 0. | + | skatteProsent = 0.31 |
| + | Else | ||
| + | skatteProsent = 0.39 | ||
End If | End If | ||
</source> | </source> | ||
| − | + | Noen foretrekker her bruk av Select: | |
<source lang="oobas"> | <source lang="oobas"> | ||
| − | + | Select Case inntekt | |
| + | Case < 200000: | ||
| + | skatteProsent = 0.2 | ||
| + | Case < 300000: | ||
| + | skatteProsent = 0.25 | ||
| + | Case < 400000 | ||
| + | skatteProsent = 0.31 | ||
| + | Else | ||
| + | skatteProsent = 0.39 | ||
| + | End Select | ||
</source> | </source> | ||
| − | |||
Resultatet av et uttrykk (Case-variabelen) blir sjekket mot en rekke | Resultatet av et uttrykk (Case-variabelen) blir sjekket mot en rekke | ||
ulike verdier og verdirom. Første treff blir så utført, eventuelt | ulike verdier og verdirom. Første treff blir så utført, eventuelt | ||
hvis ingen treff, blir intet utført. | hvis ingen treff, blir intet utført. | ||
| − | |||
<source lang="oobas"> | <source lang="oobas"> | ||
Select Case weekDay | Select Case weekDay | ||
| Line 65: | Line 80: | ||
End Select | End Select | ||
</source> | </source> | ||
| − | + | Mere komplekse verdirom angis med operatorer og lister: | |
<source lang="oobas"> | <source lang="oobas"> | ||
Select Case antallVarer | Select Case antallVarer | ||
Latest revision as of 04:42, 15 December 2009
Programmet deles inn i kodeblokker. For å styre interpreteren til rett blokk brukes logiske tester som gir boolsk resultat (True eller False). I det enkle eksempel:
barneTrygd = False
If alder < 18 Then
barneTrygd = True
End If
vil barneTrygd kun bli sann hvis alder er under 18. Det kunne vært formulert slik:
If alder < 18 Then
barneTrygd = True
Else
barneTrygd = False
End If
Resultatet blir det samme. Mer kompakt kode er mulig:
If alder < 18 Then barneTrygd = True
Hvis en har flere enn to mulige blokker brukes ElseIf, så mange en vil:
If inntekt < 200000 Then
skatteProsent = 0.2
ElseIf inntekt < 300000 Then
skatteProsent = 0.25
ElseIf inntekt < 400000 Then
skatteProsent = 0.31
Else
skatteProsent = 0.39
End If
Noen foretrekker her bruk av Select:
Select Case inntekt
Case < 200000:
skatteProsent = 0.2
Case < 300000:
skatteProsent = 0.25
Case < 400000
skatteProsent = 0.31
Else
skatteProsent = 0.39
End Select
Resultatet av et uttrykk (Case-variabelen) blir sjekket mot en rekke ulike verdier og verdirom. Første treff blir så utført, eventuelt hvis ingen treff, blir intet utført.
Select Case weekDay
Case 1:
NameOfWeekday = "Sunday"
Case 2:
NameOfWeekday = "Monday"
Case 3:
NameOfWeekday = "Tuesday"
Case 4:
NameOfWeekday = "Wednesday"
Case 5:
NameOfWeekday = "Thursday"
Case 6:
NameOfWeekday = "Friday"
Case 7:
NameOfWeekday = "Saturday"
End Select
Mere komplekse verdirom angis med operatorer og lister:
Select Case antallVarer
Case 1 To 5
' ... verdiene 1, 2, 3, 4 og 5
Case > 100
' ... verdier over (ikke inkludert) 100
Case 6, 7, 8
' ... verdiene 6, 7 eller 8
Case 6, 7, 8, > 15, < 0
' ... verdiene 6, 7 og 8, samt alt under 0 og alt over 15.
Case Else
' ... hvis ingen treff over kan (valgfritt) Else angis
End Select
Eksempel på feil og typeblanding er hvis en angir et logisk uttrykk som testverdi:
Select Case alder
Case alder = 8
' ... utføres bare hvis alder er lik (alder = 8)
Case Else
' ... all other instances
End Select
Her blir "alder" sammenlignet med "alder = 8", som er boolsk. "alder = 8" er True hvis "alder" er 8, False ellers. Når "alder" sammenlignes med boolsk blir True omgjort til -1 og False til 0. Derfor sammenlignes "alder" med 0 eller -1.
| Content on this page is licensed under the Public Documentation License (PDL). |