Hallo,
ich habe mal Versuche mit Select...EndSelect gemacht, da ich selber in einem meiner Programme
darüber gestolpert bin.
Und zwar geht es darum, bestimmte Bereiche (z.B. 600 - 630) über CaseOf abzufragen. Hier stößt man bei Select...EndSelect
auf Stolpersteine. Gerade Anfänger könnten so in die Falle tappen.
Cls
Print "mit CASEOF\n"
Test1(5)
Test1(12)
Test1(32)
Test1(620)
Print
Print "mit IF\n"
Test2(5)
Test2(12)
Test2(32)
Test2(629)
Waitkey
Proc Test1
Parameters long x
Select x
CaseOf > 0, < 10 '1,2,3,4,5,6,7,8,9
Print "einstellig"
CaseOf > 9, < 30 '10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29
Print "10er und 20er"
CaseOf >= 600, <= 630
Print "liegt im Bereich !"
Otherwise
Print "höher als 30 oder kleiner 1"
EndSelect
EndProc
Proc Test2
Parameters long x
If (x > 0) And (x < 10)
Print "einstellig"
ElseIf (x > 9) And (x < 30)
Print "10er und 20er"
ElseIf (x >= 600) And (x <= 630)
Print "liegt im Bereich !"
Else
Print "höher als 30 oder kleiner 1"
EndIf
EndProc
End
Alles anzeigen
Da in der Hilft bei SELECT steht :
Spoiler anzeigen
Select ... CaseOf ... Otherwise ... EndSelect
Die Funktion der SELECT-Struktur entspricht im Wesentlichen einer IF/ELSEIF-Struktur.
sollte auch entsprechend der IF-Struktur ein AND und ein OR bei der Select-Anweisung möglich sein.
Das würde mir auch logischer erscheinen. Natürlich könnte man jetzt sagen, daß man doch die BETWEEN()
Funktion nutzen sollte, aber das ist ja nicht das Thema.
Auch ein Konstrukt, ähnlich wie bei den regulären Ausdrücken, könnte ich mir vorstellen :
Wäre vielleicht auch interessant.