Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Nehmen wir ein (absolut unsinniges) Konstrukt, das heute 10 verschiedene, diskrete Werte in der Variablen a behandeln soll und entsprechend die Variable b setzen:
Code:
if a == 1u08 then {
b = 10u08 * a;
} endif
if a == 2u08 then {
b = 11u08 * a;
} endif
if a ==3u08 then {
b = 20u08 * a;
} endif
if a == 4u08 then {
b = 25u08 * a;
} endif
if a == 5u08 then {
b = 40u08 * a;
} endif
if a == 6u08 then {
b = 70u08 * a;
} endif
if a == 7u08 then {
b = 80u08 * a;
} endif
if a == 8u08 then {
b = 120u08 * a;
} endif
if a == 9u08 then {
b = 360u08 * a;
strWarnung = $Warnmeldung erzeugen$;
} endif
if a == 10u08 then {
b = 90u08 * a;
} endif
Das sollte doch mit einer (um break und default abgespeckten, switch-ähnlichen Schreibweise gleichwertig und ohne formulierbar sein:
Code:
switch a {
case 1u08: {b = 10u08 * a;}
case 2u08: {b = 11u08 * a;}
case 3u08: {b = 20u08 * a;}
case 4u08: {b = 25u08 * a;}
case 5u08: {b = 40u08 * a;}
case 6u08: {b = 17008 * a;}
case 7u08: {b = 80u08 * a;}
case 8u08: {b = 120u08 * a;}
case 9u08: {
b = 360u08 * a;
strWarnung = $Warnmeldung erzeugen$;
}
case 10u08: {b = 90u08 * a;}
}
Das ergäbe doch wesentlich besser lesbaren Code, oder? Auch beim durchscrollen durch den Code gäbe so etwas einen besseren Anhaltspunkt, wenn man gerade was sucht. Und ja, im obigen unsinnigen Beispiel könnte man auch einzeilig arbeiten, aber es geht ja nicht darum, denn meist benötigt man ja mehrere Codezeilen.
Beim Parsen könnte doch der oben stehende Code zum weiteren kompilieren erzeugt werden.
Wie gesagt, auf "break" und "default" könnte ich durchaus verzichten, die einzelnen Blöcke wären mit den den geschweiften Klammern eindeutig definiert.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar