Visual Basic hilfe

kleenercectfan2

Entsperrt
hallo!
ich hab da n eigentlich kleines problem. und zwar (hab ich hausaufgaben auf ;) ne scherz) soll ich als hausaufgabe ein Programm in VB erstellen dass einen fragt ob man wurst oder käse kaufen will und dann preis und kg fragt aber das hab ich schon....
Code:
Sub eurotool()
y = InputBox("Wurst oder Käse?", "Warenart")
If y = "Wurst" Then
GoTo b
End If
If y = "Käse" Then
GoTo c
End If
b:
v = Val(InputBox("KG?", "Menge"))
w = Val(InputBox("Wurstpreis?", "Preis"))
x = v * w
MsgBox "Das sind " & x & " Euro", , "Eurobetrag"
GoTo d
c:
v = Val(InputBox("Wie viel Kilogramm?", "Menge"))
w = Val(InputBox("Käsepreis?", "Preis"))
y = v * w
MsgBox "Das sind " & y & " Euro", , "eurobetrag"
d:
End Sub
Jetzt hab ich die frage wie mach ich es dass wenn man z.B. abc eingibt das programm ausgeht?
 

AdmiralX

New Member
vb programmierung ist schon lange lange her bei mir, auch wenn ich dir jetzt nicht direkt etwas zu deiner frage sagen kann (hab die nicht ganz verstanden :( ) muß ich trotzdem etwas zu deinem programmierstiel sagen ...
kein, nie und nimmer nicht auch nicht in vb, GoTo verwenden!!!111einseinself

schau dir mal die seite an http://www.vb-seminar.de/ vielleicht findest du dort ein paar anregungen.

ich habe dein programm nur kurz überflogen deshalb habe ich sicher nicht alle fehler gefunden.
- du verwendest die variable 'y' zwei mal für verschiedene typen
- du verwendest goto
- du solltest elseif verwenden
- kein goto
- zwei mal fast der gleiche code, das würde auch einfacher gehen
- bennenung der variablen namen

ich weiß nicht genau welche vb version du verwendest sonst könnte ich dir etwas mehr tips geben, zwischen vb 6 und vb.net gibts doch einige unterschiede!
 

kleenercectfan2

Entsperrt
also goto funktioniert aber ;) hab ich in Comal so gelernt und hat der lehrer uns auch für VB gezeigt... naja haben bis heute den Visual Basic Editor im Excel benutzt ab nächste woche gehts mit VB express 2008 (glaub ich) los

gerade eben kam mir ein lichtblitz ^^ ich kann ja machen:
if y = käse then
...
else
goto

das mit elseif hab ich iwie nich ganz verstanden was man damit macht... ich glaub nichts dass es den Goto befehl ersetzt!?
 
Zuletzt bearbeitet:

AdmiralX

New Member
ja goto macht schon das was es soll, aber wenn du ein längeres programm und mehrer gotos hast dann wird es sehr schwer bis unmöglich den quelltext zu warten, das ganze nennt sich dann spagetti code.

ein elseif ist nichts anderes als ein if das sich auf das if zuvor bezieht.

du hast dann:

if
...
elseif
...
else
...
end if

nach deinem ersten if würde das programm das zweite if auch noch überprüfen obwohl wir ja wissen daß das unnötig wäre, wenn du elseif verwendest dann fällt diese überprüfung weg.

warum schreibst du den code den du nach deinem goto hast nicht gleich nach dem if?
also nicht

if
goto b
end if
b:
<code>

sondern
if
<code>
end if
 

kleenercectfan2

Entsperrt
ich brauch nochmal eure hilfe.. ich muss n kleines programm schreiben dass er "mir" aufgaben stellt und nach jeder aufgabe fragt ob ich weitermachen will oder nicht. mein problem ist, egal was ich bei der frage anklicke fängt er entweder am anfang wieder an oder hört auf (je nach variante wie ich versucht hab)

Code:
Dim x, y, z, v, f, r, n
Sub Schaltfläche1_beiklick()
f = 0
r = 0
n = Val(InputBox("wie viele aufgaben"))
a = Val(InputBox("wie hoch sollen die zahlen sein?"))
For i = 1 To n
e:
x = (Int(Rnd() * a) + 1)
z = (Int(Rnd() * a) + 1)
y = x + z
MsgBox x & " + " & z & " = " & "?"
v = Val(InputBox("ergebnis?"))
If v = y Then
MsgBox ("richtig")
r = r + 1
Else: f = f + 1
MsgBox ("falsch")
End If
If n = 1 Then
GoTo g
End If
MsgBox "weitermachen?", vbOKCancel
If vbOKCancel = vbOK Then
GoTo e
End If
If vbOKCancel = vnCancel Then
GoTo g
Next
g:
MsgBox "falsch" & f & vbcrlf & " richtig " & r
End Sub
 
Zuletzt bearbeitet:

Mitglieder

Keine Mitglieder online.

Who Has Visited

Statistik des Forums

Themen
54,364
Beiträge
837,245
Mitglieder
66,936
Neuestes Mitglied
arensmeier.marcel@googlem
Oben Unten