Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem bei simpler if Abfrage
ScaVo - Mo 11.04.11 21:05
Titel: Problem bei simpler if Abfrage
Ich habe heute so fröhlich an meinem Rechner gesessen und zum Spaß ein wenig programmiert, als mir ein Fehler unterläuft den ich absolut nicht verstehe. Nach einigem gesuche habe ich folgenden Test in meinen Quelltext implementiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if ARMP then begin sleep(1); if ARMP=true then begin sleep(1); end; if ARMP=false then begin sleep(1); end; end; |
ARMP ist ganz nebenbei vom Typ boolean. Aber wie ist der Test im Debugmodus verlaufen? Nun, die Abfrage "if ARMP then" hat er bestätigt und den Block danach ausgeführt. Das Debugfenster zeigte mir an, dass ARMP den Wert true hat. Die Abfrage "if ARMP=true" hat Delphi dann aber nicht mehr ausgeführt - das hat mich irgendwie verwundert. Aber dass er dann auch (obwohl irgendwo es auch zu erwarten war) die Abfrage "if ARMP=false" nicht ausführte habe ich mich dann doch entschlossen euch mal wieder zu schreiben.
Ist euch soetwas auch schon mal passiert?
Wie lässt sich das beheben?
MfG Scavo
P.S.: Noch anzumerken ist, dass ich weiß, dass heute kein 1. April ist - auch wenn das ganze irgendwie nach einem Scherz klingt...
ScaVo - Mo 11.04.11 21:15
Hmm... leuchtet mir irgendwie ein... Danke!
Gerd Kayser - Mo 11.04.11 21:26
Einen großen Fehler habt Ihr aber noch übersehen:
Der Anweisungsblock (Zeile zwei bis acht) wird nur ausgeführt, wenn ARMP true ist. In diesem Block kann daher eine Abfrage auf false (Zeile sechs) niemals funktionieren. Entweder ARMP ist true oder false. Beides zusammen geht nicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!