If...Then

Status
Niet open voor verdere reacties.

Twanneke

Gebruiker
Lid geworden
9 okt 2007
Berichten
6
Hallo,

Een vraag die gesteld word moet beantwoord worden met y of n.
Tevens moet ook Y of N goed gerekend worden.
Kan iemand mij vertellen hoe ik dat het beste kan doen? De manier die ik heb is nogal omslachtig....

Case 0
Prompt = "When you set a breakpoint you get into Break-mode [y or n]"
Answer = InputBox(Prompt)

If Answer = "y" Then
MsgBox(Right)
ElseIf Answer = "Y" Then
MsgBox(Right)
ElseIf Answer = "n" Then
MsgBox(Wrong)
ElseIf Answer = "N" Then
MsgBox(Wrong)
ElseIf Answer <> "y" Then
MsgBox(Wrong)
ElseIf Answer <> "y" Then
MsgBox(Wrong)
ElseIf Answer <> "n" Then
MsgBox(Wrong)
ElseIf Answer <> "n" Then
MsgBox(Wrong)
End If
 
Code:
Answer = "y" OR Answer = "Y"
je kan de "OR" operator gebruiken, of de "AND", "XOR", enz.
verder zou ik in plaats van "if...then" een "select case" gebruiken, dat is sneller

dus zoiets:
Code:
Case 0
Prompt = "When you set a breakpoint you get into Break-mode [y or n]"
Answer = InputBox(Prompt)

[COLOR="SeaGreen"]'begin de case[/COLOR]
select case Answer
case answer="y" or answer="Y"
[COLOR="seagreen"]'het antwoord = JA[/COLOR]
case answer = "n" or answer ="N"
[COLOR="seagreen"]'het antwoord = NEE[/COLOR]
case else   [COLOR="seagreen"]'dit is dus als het geen van bijde is, dus ook "fout" in jou geval[/COLOR][COLOR="SeaGreen"]'het antwoord = NEE[/COLOR]
end select
[COLOR="seagreen"]'eindig case[/COLOR]


ps. zet de volgende keer je code tussen [ CODE ] en [ /CODE ] tags plz, is makkelijker lezen enzo :)
 
Je moet er wel rekening mee houden dat je het keyword 'Right' niet kunt gebruiken binnen VB, aangezien dit een functie binnen VB is.

Code:
Dim s As String
s = ""

'om invoer vragen tot de gebruiker een 'j' of een 'n' heeft opgegeven
Do While s <> "j" And s <> "n"
  s = LCase(InputBox("wilt u blabla ? j/n"))   'invoer wordt automatisch omgezet naar kleine letters
Loop

's kan alleen maar 'j' of 'n' zijn
Select Case (s)
  Case "j": MsgBox "Goed!"
  Case "n": MsgBox "Jammer!"
End Select

Iets als bovenstaande zou je ook kunnen doen.

edit: commentaar bijgezet.
 
Laatst bewerkt:
het enige punt is dat je met die loop ook hebt, dat als de gebruiker op "anuleren" drukt, je WEER een inputbox krijgt...
 
het enige punt is dat je met die loop ook hebt, dat als de gebruiker op "anuleren" drukt, je WEER een inputbox krijgt...

Daar heb je gelijk in. Maar dat is ook weer op te lossen. (cancel geeft een lege string terug(strptr zou je hier bijvoorbeeld voor kunnen gebruiken)

Verder doe ik eigenlijk niks meer met VB. Dus het is behoorlijk roestig. :P
 
hahahaha okay
je hebt gelijk, noot alleen wel dat
Code:
Do While s <> "j" And s <> "n" And s <> ""
  s = LCase(InputBox("wilt u blabla ? j/n"))   'invoer wordt automatisch omgezet naar kleine letters
Loop
niet werkt, want zo opent hij de inputbox niet, evenals vbnullstring of empty :)
 
hahahaha okay
je hebt gelijk, noot alleen wel dat
Code:
Do While s <> "j" And s <> "n" And s <> ""
  s = LCase(InputBox("wilt u blabla ? j/n"))   'invoer wordt automatisch omgezet naar kleine letters
Loop
niet werkt, want zo opent hij de inputbox niet, evenals vbnullstring of empty :)

Uiteraard werkt dat niet. Je zult dan voor een andere constructie moeten gaan. Maar het is zeker wel mogelijk.

Code:
Dim s As String

Do While True
   s = LCase(InputBox("ja of nee ?"))
   If s = "j" Or s = "n" Or s = "" Then
     If s = "" Then s = "n"
     Exit Do
   End If
Loop

Select Case s
  Case "j": MsgBox "ja"
  Case "n": MsgBox "nee"
End Select
 
Laatst bewerkt:
damn ik zou dit graag ook willen weten
waar moet je al die tekst in stoppen en welke dingen moet je veranderen naar je eigen gewenste tekst ( maak het aub gebruiksvriendelijker voor mij, ben nogal n noob :) )
 
wAt wil je dan precies? anders open je een nieuw topic?...

Ik wil niet precies iets,
maar trouwens weet jij hoe je memory dingen veranderd in Visual basic
bvb in een spel zoals 0065FAD9 ofzo en dat als je bvb op command button 1 klikt dat je dan 100HP hebt (freezed) , en als je op command button 2 klikt je weer gewoon je normale HP hebt zonder freeze

ik hoop dat iemand dat weet mvg:)
 
ik weet niet of dit een misdrijf is, maar alsnog, lol
Crossposting:
Plaats geen off-topic berichten in een thread. Als je over iets anders wil praten, open dan een nieuw bericht. Met off-topic berichten bedoelen we berichten die niet over het 'hoofdonderwerp' (de vraag) gaan.
maar nee, als ik het antwoord had geweten dan had ik het in dat topic geplaatst.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan