Seite 1 von 1

Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 26.04.2015 18:55
von Sicro

Code: Alles auswählen

a = 3
While a > 0 Or #False
  a - 1
  Debug a
Wend

Debug "Or #False wird nicht beachtet"
Debug "----------------"

a = 3
Repeat
  a - 1
  Debug a
Until a = 0 Or #True

Debug "Or #True wird beachtet"
Debug "----------------"

a = 1
If a <> 0 Or #False
  Debug "Or #False wird nicht ausgeführt. Das ist ja bekannt und ok so."
EndIf
While ignoriert das "Or False", Until hingegen nicht.
While verarbeitet die Bedingung also wie If: Trifft die erste Bedingung zu, wird die zweite ignoriert.

Sollte das nicht einheitlich sein?

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 26.04.2015 19:05
von - chris -

Code: Alles auswählen


a = 3
While a > 0 Or a = #False
  a - 1
  Debug a
Wend

Bei "Or #False" ist die Bedingung nie erfüllt.

Code: Alles auswählen


a = 3
Repeat
  a - 1
  Debug a
Until a = 0 Or a = #True

Bei "Or #True" wird die Repeat Schleife sofort verlassen

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 26.04.2015 20:10
von Chimorin
Funktioniert doch richtig.

OR ist das logische oder.
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1
Sobald ein Argument wahr ist, funktioniert die Sache. Das, was du brauchst, ist das logische Und, AND.

Du trägst bei der Whileschleife or #False ein, bei der Repeatschleife or #True. Das ist schon etwas anderes ;)

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 27.04.2015 08:08
von Nino
Chimorin hat geschrieben:Du trägst bei der Whileschleife or #False ein, bei der Repeatschleife or #True. Das ist schon etwas anderes ;)
So ist es. :-)
Der Titel sollte heißen: "#True/#False-Auswertung unterschiedlich".

Und es wäre schön, wenn einfache Verständnisfragen nicht in der "Bugs"-Abteilung gepostet würden.

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 27.04.2015 10:25
von NicTheQuick
Nino hat geschrieben:Und es wäre schön, wenn einfache Verständnisfragen nicht in der "Bugs"-Abteilung gepostet würden.
Und schon ist es im richtigen Forum. Ich hab den Thread heute Nacht zwar schon gelesen, aber mir ist gar nicht aufgefallen, dass er im falschen Forum ist.

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 28.04.2015 19:41
von Sicro

Code: Alles auswählen

While a > 0 Or #False
Ich war beim Programmieren an diesem Abend so sicher, dass "a > 0 Or #False" #False wegen "Or #False" ergibt und habe das Verhalten von While vorschnell als Bug gewertet, ohne zu hinterfragen, ob ich mich vielleicht irre.

Nach einem hartem Arbeitstag sollte man einfach nicht mehr programmieren :freak:

Ich werde beim nächsten "Bug"-Fund nochmal eine Nacht drüber schlafen, bevor ich ihn melde :allright: Sorry :)

Re: Bedingungen bei While/Until: Auswertung unterschiedlich

Verfasst: 28.04.2015 19:44
von Chimorin
Achwas. Sowas hilft irgendwem bestimmt.
Wahrscheinlich wird es nicht nur 1 geben, der in diesem Jahr nach diesem Thema googelt :D