Ist der Compiler nicht intelligent genug, die For-Schleife und das den Schleifenzähler bedingende Case in eine Verbindung zu setzen?
Nein, in diesem Fall nicht. Ist ja auch nicht ganz einfach, oder hast du auf Anhieb einen entsprechenden Algorithmus parat?
Würden für die Grenzen der For-Schleife Variablen verwendet, wäre es sogar noch komplizierter. Dann müsste man die Belegung der Variablen analysieren.
Es sollte aber gehen, wenn du in das case einen else-Zweig mit einer
Exception einbaust.
Delphi-Quellcode:
case I of
1: LEncoding := TEncoding.ANSI;
2: LEncoding := TEncoding.ASCII;
3: LEncoding := TEncoding.BigEndianUnicode;
4: LEncoding := TEncoding.Unicode;
5: LEncoding := TEncoding.UTF7;
6: LEncoding := TEncoding.UTF8;
else
raise EProgrammerNotFound.Create('WTF?');
end;