Title: Beslissingen: If en Select
1BeslissingenIf en Select
2In dit hoofdstuk
- In elke programmeertaal bestaat de mogelijkheid
om beslissingen te nemen - VB.NET If en Select
3If
Private Sub Button1_Click( _ ByVal sender As
System.Object, _ ByVal e As System.EventArgs)
_ Handles Button1.Click Dim code As
String Label2.Text "" code
TextBox1.Text End Sub
If code "bill" Then Label2.Text
"Unlocked" End If
Code springt in ? leesbaarheid
4Stroomdiagram
- Dit is een UML activity diagram
activiteit
starttoestand
Actie, activiteit
else
conditie
eindtoestand
beslissing
5Stroomdiagram
code bill
Display unlocked
code ltgt bill
6If Else
Voer leeftijd in
leeftijd lt 17
leeftijd gt 17
Je mag stemmen
Je mag niet stemmen
Toon Best Wishes
7If Else
Private Sub Button1_Click( _ ByVal sender As
System.Object, _ ByVal e As System.EventArgs)
_ Handles Button1.Click Dim age As
Integer age CInt(TextBox1.Text) If age
gt 17 Then DecisionLabel.Text "you may
vote" CommentaryLabel.Text
"congratulations" Else
DecisionLabel.Text "you may not vote"
CommentaryLabel.Text "sorry" End If
SignOffLabel.Text "Best Wishes" End Sub
Else DecisionLabel.Text "you may not vote"
CommentaryLabel.Text "sorry"
8Vergelijkingsoperatoren
Symbool Betekenis
gt groter dan
lt kleiner dan
is gelijk aan
ltgt ongelijk aan
lt kleiner of gelijk aan
gt groter of gelijk aan
9Voorwaarden combineren
- And operator
- Or operator
- Not operator
If (age gt 6) And (age lt 16) Then ... End If
Gebruik haakjes
If (age lt 6) Or (age gt 16) Then ... End If
If Not (age gt 18) Then ... End If
10Voorwaarden combineren
- Herschrijf volgende voorwaarde
- Herschrijf nogmaals vorige voorwaarde, maar
gebruik enkel Not en Or. Hoe heet deze regel
(Logica)?
If (Not (a gt 10)) And (Not (b gt 16))
Then ... End If
11Dice programma
- Bestudeer het dice programma
- Los de testvragen op
- Hoe kan je je programma robuuster maken, zodat je
CheckValues() zelf nooit meer hoeft te
wijzigen?(Hint hoofdstuk 5)
12Geneste Ifs en ElseIf
If age gt 6 Then If age lt 16 Then
Label1.Text junior rate Else
Label1.Text adult rate End If Else
Label1.Text child rate End If
If (age gt 6) And (age lt 16) Then Label1.Text
junior rate ElseIf age gt 16 Then
Label1.Text adult rate Else Label1.Text
child rate End If
13Geneste Ifs en ElseIf
- Bestudeer Tom en Jerry, herschrijf de If
structuur als er 3 schuifregelaars zouden zijn - Testvraag 7.8, schrijf de If structuur
14Select
If dayNumber 1 Then dayName
Monday ElseIf dayNumber 2 Then dayName
Tuesday ElseIf ... ElseIf dayNumber 7 Then
dayName Sunday End If
Select Case dayNumber Case 1 dayName
Monday Case 2 dayName
Tuesday ... Case 7 dayName
Sunday End Select
15Select
- Meerdere opdrachten binnen Case
- Meerdere opties per Case
- Else clausule (default optie)
Case 6 MessageBox.Show(Hoera) dayName
Saturday
Case 6, 7 dayName Weekend
Select Case dayNumber Case 1 dayName
Monday ... Case Else dayName
illegal day End Select
16Select
Select Case a - b Case Is gt 0
Label1.Text CStr(a) " is greater than "
CStr(b) Case Is lt 0 Label1.Text
CStr(b) " is greater than " CStr(a) Case
0 Label1.Text "They are equal" End
Select
17Select aandachtspunten
- Er is geen break statement nodig
- Het is een goed idee om altijd een Case Else
statement te voorzien (bv. met een
MessageBox.Show()), ook al verwacht je die
waarden niet.Zo detecteer je bugs in je programma
18Het type Boolean
- Twee waarden True en False
- Dit type kan je gebruiken net als alle andere
types - Instantievariabelen
- Locale variabelen
- Methode/functie argumenten
- Functie return types
- Demo remember