Abfrage funktioniert nicht korrekt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

AJ83

Betreff: Abfrage funktioniert nicht korrekt

BeitragDi, Jun 07, 2011 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Warum endet folgendes Testprogramm in einer Endlosschleife, obwohl die "Else" Bedingung (Ergebnis ist größer als 4) zutreffen sollte?

Code: [AUSKLAPPEN]
Zahl1% = 2
Zahl2% = 10

Repeat
   Ergebnis% = Zahl1% - Zahl2%
   If Ergebnis <= 4 Then
      Korrekt% = False
   Else
      Korrekt% = True
   End If
Until Korrekt% = True


Ich verwende Protean 1.4 und Blitz 3D 1.94.

Thunder

BeitragDi, Jun 07, 2011 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist nicht wirklich eine Endlosschleife. Ich denke du hast nur die Zuweisungen an Korrekt vertauscht.

Ergebnis bleibt immer -8 (weil sich Zahl1 und Zahl2 nicht verändern).
Das ist kleiner als 4, daher wird Korrekt auf False gesetzt.
Die Schleife wird aber nur beendet, wenn Korrekt = True ist.
--> Endlosschleife.

Was du dagegen tun kannst, hängt davon ab, was das Programm tun soll.

mfg Thunder

PS: Willkommen im Forum!
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

BlitzMoritz

BeitragDi, Jun 07, 2011 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
(thunder war schneller ...)
In solchen Fällen hilft immer, sich probeweise die Schleifenergebnisse etwas mit "Print "Ergebnis = " + Ergebnis" ausgeben zu lassen, dann hättest du gesehen, dass die erst innerhalb der Schleife eingeführte Variable Ergebnis immer konstant = -8 bleibt. Hättest du die Abbruchbedingung Ergebnis <= -10 benutzt, wäre es tatsächlich eine Endlosschleife geworden. Vielleicht wolltest du eher so etwas wie Zahl1 = Zahl1 - Zahl2 benutzen. Außerdem wolltest du wohl until korrekt = false schreiben.
Summa summarum folgender Korrekturvorschlag:
BlitzBasic: [AUSKLAPPEN]
Zahl1% = 2 
Zahl2% = 10
Repeat
Zahl1% = Zahl1% - Zahl2%
Print "Zahl1 = " + Zahl1
If Zahl1 <= 4 Then
Korrekt% = False
Else
Korrekt% = True
End If
Until Korrekt% = False
 

AJ83

BeitragDi, Jun 07, 2011 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure Hilfe! Habe leider Zahl1% mit Zahl2% vertauscht Sad .

BladeRunner

Moderator

BeitragMi, Jun 08, 2011 7:20
Antworten mit Zitat
Benutzer-Profile anzeigen
...und mach ein Update von deinem BB, 1.94 ist weit von aktuell entfernt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group