Archief - Visual basic probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Pils123

Legacy Member
Hallo,

ik moet in VB het spel "éénarmige bandiet" maken.
maar ik weet niet hoe de geneste functie zou moeten zijn.
Zou je aub eens willen kijken wat er mis is?
Gelieve enkel naar de if-functie te kijken want de rest is nog niet af

Public Class Form1

Private Sub btnKans_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKans.Click
Dim getal1 As Decimal
Dim getal2 As Decimal
Dim getal3 As Decimal


Randomize()
getal1 = CInt(Int((9 * Rnd()) + 0))
lblGetal1.Text = getal1
getal2 = CInt(Int((9 * Rnd()) + 0))
lblGetal2.Text = getal2
getal3 = CInt(Int((9 * Rnd()) + 0))
lblGetal3.Text = getal3

If getal1 = getal2 = getal3 Then
MessageBox.Show("Je hebt gewonen! Je kan niet meer verder spelen", "Gewonen!", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtPrijs.Text = ("€500")

End If


End Sub

Private Sub btnSluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSluiten.Click
Me.Close()
End Sub
End Class

Pils123

Legacy Member
o ja ik zou dus bij else moeten hebben: als 2 getallen gelijk zijn heb je 200 euro

sorry vergeten

Albireo

Legacy Member
Pils123 zei:
If getal1 = getal2 = getal3 Then
probleem: VB zal eerst getal1 en getal2 met elkaar gaan vergelijken. Dat geeft een boolean als resultaat. Daarna zal VB die boolean gaan vergelijken met getal3 (een decimal) en dat gaat niet. Met Option Strict On geeft dit een foutmelding. Met Option Strict Off, wordt de boolean die het resullaat is van getal1=getal2 omgezet in een decimal (0 voor false, -1 voor true) en vergeleken met getal3. Dat geeft dan geen foutmelding maar 't geeft wel een verkeerd resultaat natuurlijk.

oplossing: maak daar van getal1 = getal2 And getal2 = getal3 en zorg dat Option Strict On staat (of gebruik C# :p)

PS. if is een statement geen function
PPS. gewonnen!
PPPS. Kijk ook eens naar Random.Next(Int32, Int32)

nameless

Legacy Member
Albireo zei:
probleem: VB zal eerst getal1 en getal2 met elkaar gaan vergelijken. Dat geeft een boolean als resultaat. Daarna zal VB die boolean gaan vergelijken met getal3 (een decimal) en dat gaat niet. Met Option Strict On geeft dit een foutmelding. Met Option Strict Off, wordt de boolean die het resullaat is van getal1=getal2 omgezet in een decimal (0 voor false, -1 voor true). Dat geeft dan geen foutmelding maar 't geeft wel een verkeerd resultaat natuurlijk.

oplossing: maak daar van getal1 = getal2 And getal2 = getal3 en zorg dat Option Strict On staat (of gebruik C# :p)

Ik zou er getal1=getal2 andalso getal2=getal3, bij and gaan altijd beide gecontroleerd worden ook al is getal1=getal2 false. Andalso gaat getal2=getal3 alleen uitvoeren als het eerste deel waar is.

Pils123

Legacy Member
jep kheb mn leerkracht raad gevraagd en het is: getal1 = getal2 and getal2=getal3 and getal1= getal3

Hannes_

Legacy Member
Als getal1==getal2 en getal2==getal3 dan is sowieso getal1==getal3 hé :p Die laatste check is dus overbodig.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan