ich bin nun ganz böse über den Bug mit den verschachtelten "if"s gestolpert.
Ich hatte schon davon gelesen, dass es den geben soll. Nur klang das in den Beschreibungen aber immer so, als ob das nur bei recht wüsten Nestern auftritt und/oder ein workaround einfach ist, indem man darauf achtet, notfalls ein überflüssiges "else" einzufügen oder so.
Aber denkste! Selbst bei einer einfachen Verschachtelung wie der folgenden versagt uBasic völlig:
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
n = 2
if n=1 then
if 0 then
print 1
else
print 2
endif
print 3
else
print 4
endif
end
if n=1 then
if 0 then
print 1
else
print 2
endif
print 3
else
print 4
endif
end
Erstellt in 0.005 Sekunden, mit GeSHi 1.0.8.9
Output:
2
3
4
D.h. es wird sowohl Zeile 8 als auch 10 ausgeführt, obwohl sie in verschiedenen "else"-Zweigen sind!
Wenn ich in obigem Code die Zeilen 3-7 mit "rem" auskommentiere, dann läuft es korrekt und Zeile 8 kommt nicht zur Ausführung.
(Verhält sich übrigens im "UBasic Debugger" identisch wie in der Kamera.)
Ich habe bisher keinen workaround finden können. Arrggh!
Tja, was mach' ich nun? Ich habe mir für ein spezielles Problem so einen hübschen Code ausgedacht und weiss nun aber überhaupt nicht, wie ich dessen Logik (die im Prinzip wie oben ist, nur natürlich ein wenig komplizierter; statt den einzelnen "print"s stehen da halt mehrere Codezeilen usw.) nun realisieren soll.
Gibt es vielleicht noch einen bekannten Kniff, wie man dieses Problem irgendwie vermeiden/umschiffen kann?
Grüße
BigDaddy