Gibt es einen Klammerzwang?

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Gibt es einen Klammerzwang?

Beitragvon chiptune » 10.09.2008, 08:16

Hallo,

Ohne Klammer geht es nicht, bzw. nicht zuverlässig. Seht euch bitte das nachfolgende Test-Script an:
Code: Alles auswählen
@title Klammerzwang
A=10
B=2
rem kleiner
if A-B<4 then print "don't print 01"
if (A-B)<4 then print "don't print 02"
if A-B<7 then print "don't print 03"
if (A-B)<7 then print "don't print 04"
rem if A-B<4 then print "don't print 05" endif
if (A-B)<4 then print "don't print 06" endif
rem if A-B<7 then print "don't print 07" endif
if (A-B)<7 then print "don't print 08" endif

rem größer
A=10
B=8
if A-B>4 then print "don't print 11"
if (A-B)>4 then print "don't print 12"
if A-B>7 then print "don't print 13"
if (A-B)>7 then print "don't print 14"
rem if A-B>4 then print "don't print 15" endif
if (A-B)>4 then print "don't print 16" endif
rem if A-B>7 then print "don't print 17" endif
if (A-B)>7 then print "don't print 18" endif

rem gleich
A=10
B=6
if A-B=6 then print "don't print 21"
if (A-B)=6 then print "don't print 22"

rem ugleich
A=10
B=5
if A-B<>5 then print "don't print 31"
if (A-B)<>5 then print "don't print 32"

end

    Alle IF-Verzweigungen sind FALSE.
    Bei allen IF-Verzweigungen ohne verklammerte Bedingung wird zu Unrecht geprintet!!!
    Alle IF-Verzweigungen mit Klammer werden korrekt bearbeitet.
    Sind die IF-Verzweigungen TRUE, so werden sie richtig bearbeitet (mit und ohne Klammer).
    IF-Verzweigungen mit "endif" am Ende wurden auskommentiert, da sie zu einem harten parse err führten.

Ich bin dafür, dass man eine "Klammerpflicht" dokumentiert.

strinrunzelnde Grüße
chiptune
SX100IS mit CHDK
MD_SLOWMD_FASTMD_TUNE
chiptune
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 131
Registriert: 16.07.2008, 06:24

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste