Hallo,
erikafuchs hat geschrieben: ↑Di, 20.03.2018 19:23
welche Schleife wird sofort verlassen wenn die Bedingung stimmt?
damit eine abweisende Schleife sofort abweisen kann muß Sie etwas zu prüfen haben,
also würde ich die erste Eingabe vor der Schleife machen. Damit muß dann die nächste Abfrage hinter das IF/ELSE wandern:
Code: Alles auswählen
Sub Main
zahl%=55
rate% = inputbox ("Rate die Zahl!")
do while zahl% <> rate%
if zahl% < rate% then
print "Die Zahl ist zu groß!"
else
print "Die Zahl ist zu klein!"
end if
rate% = inputbox ("Rate die Zahl!")
loop
print "Jawohl!"
End Sub
Da ich mit Pascal "groß" geworden bin, wäre das für mich eher REPEAT UNTIL als WHILE....
Alternativ muß man wie schon ausgeführt realisieren, daß es 3 Unterscheidungen gibt:
Die Zahl kann kleiner, größer oder gleich 55 sein.
Code: Alles auswählen
Sub Main
zahl%=55
rate%=0
do while zahl% <> rate%
rate% = inputbox ("Rate die Zahl!")
if zahl% < rate% then
print "Die Zahl ist zu groß!"
elsif zahl% > rate% then
print "Die Zahl ist zu klein!"
else
REM wir tun nichts - Schleife wird beendet und danach kommt das "Jawohl"
end if
loop
print "Jawohl!"
End Sub
Hier habe ich noch eine 0-Initialisierung für den Ratewert eingesetzt - ich kannte "damals" auch BASIC-Interpreter,
die die Werte vom letzten Durchlauf noch im System hatten... Der zweite Durchlauf wäre dann sofort fertig.
MfG, Jörn