Diese zwei Prozeduren zeigen, daß ENDIF nur dann nötig ist, wenn die auszuführende Anweisung nicht in der gleichen Zeile wie die Abfragung steht. (Oder, selbstverständlich, wenn mehrere Anweisungen ausgeführt werden sollen):
sub Probe1
a=0
if a=0 then
print "a ist gleich Null!"
endif
print "Uffa!"
end sub
sub Probe2
a=0
if a=0 then print "a ist gleich Null!"
print "Uffa!"
end sub
Hat jemand Gegenbeweise?
Zuletzt geändert von Jonny1 am Do, 24.01.2013 15:35, insgesamt 2-mal geändert.
Nein, wozu? Denn es ist schon immer korrekt so. In der Hilfe bei IF-THEN-ELSE lese ich zwar nichts darüber, aber beispielsweise im Base-Handbuch Seite 240 Mitte wird es ausdrücklich erwähnt.
Ich könnte mir vorstellen, dass das "seit Urzeiten" eine Eigenheit aller Basic-Dialekte ist.
Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Ja, da bei IF-THEN-ELSE zeilen der Befehl von links nach rechts Abgearbeitet wird, also die IF-THEN-ELSE Anweisung,
D.H. wenn die Bedienung IF = Falsch ist , so wird entweder mit der Ausführung nach ELSE weiter gemacht. dh. wieder um ohne ELSE keine Ausführung. Egal wie viel Befehle durch : getrennt sind.
Das war schon so seit dem ich Basic kenne ( ca. 1986 ).
Ich habe zwar mit Basic nicht 1986 angefangen, sondern ungefähr 5 Jahre früher, als es PCs noch nicht gab, sondern "Mikrocomputer" oder was ähnliches, von dem richtigen Namen bin ich mir nach mehr als 30 Jahren nicht mehr sicher.
Ich hatte zuerst einen Alphatronic von Triumph Adler. 64 KB RAM, von denen ich nur 48 KB benutzen konnte, denn zum Erlernen der Technik, die mir die Anwendung der restlichen kostbaren 16 KB ermöglicht hätte, habe ich nie die Zeit gefunden, obwohl die teure 16 KBs so etwa wie zusätzliche 1000 DM gekostet haben. Von Festplatten konnte ich damals nur träumen.
Aber immerhin habe ich es geschafft, mehr als dreißig Jahre lang zu ignorieren, daß man Anweisungen durch Doppelpunkt trennen kann. Eine einmalige Leistung! Aber vielleicht wusste ich es damals und habe dann es bis heute vergessen.