Klar man kann auch einfach ein IF THEN machen aber sieht als Case einfach netter aus wenn man eh immer mit der gleichen Variable vergleicht.
Normaleweise lege ich mir die abzufragende "variable" Variable als Steuerbefehl für CASE und die Kriterien nach denen diese ausgewertet wird, als CASE-Bedingungen. Welchen Anwendungsfall gibt es um ein variables CASE zu machen ? Indem du deine Sprungmarken aus einer Rezeptur vergibst oder wie ?
Im CASE geht generell folgendes:
- Konstanten;
- Hexadezimale Sprungmarken, wie z.B.
INT#16#24FF
- Umwandlung der Steuervariable aus anderem Datentyp wie z.B.
Code:
CASE DWORD_TO_INT(SHL(IN := DINT_TO_DWORD(#Steuervariable), N := 16 )) OF
INT#16#20 :
;
INT#16#80 :
;
Es geht auch CASE in CASE, Anwendung von Masken usw.
Letzen Endes ist von der Syntax her die Anweisung
Code:
IF Bestellung = Chickenburger THEN
;
ELSIF Bestellung = Cheesburger THEN
;
ELSIF Bestellung = LongChiliCheese THEN
;
ELSE
END_IF;
Nicht irgendwie wesentlich länger oder komplizierter als eine gewöhnliche Case Anweisung. Möchtest du mal sehen, wie die Inder bei Siemens neuerdings programmieren ? In der neuesten APL V9.0 ?
Das ist der der Horror. Aber so richtig heavy Metall. Guck mal, wie man ohne Case programmiert:
Code:
ELSIF TEST[RETURN_CODE*3 + 12] = 16#9 THEN
IF FEATURE_01 = W#16#2 THEN
T_CH2[2*X] := 82;
T_CH2[2*X + 1] := 82;
ELSE
T_CH2[X] := 82;
END_IF;
ELSIF TEST[RETURN_CODE*3 + 12] = 16#A THEN
IF FEATURE_01 = W#16#2 THEN
T_CH2[2*X] := 83;
T_CH2[2*X + 1] := 83;
ELSE
T_CH2[X] := 83;
END_IF;
ELSIF TEST[RETURN_CODE*3 + 12] = 16#B THEN
IF FEATURE_01 = W#16#2 THEN
T_CH2[2*X] := 83;
T_CH2[2*X + 1] := 83;
ELSE
T_CH2[X] := 83;
END_IF;
ELSIF TEST[RETURN_CODE*3 + 12] = 16#C THEN
IF FEATURE_01 = W#16#2 THEN
T_CH2[2*X] := 83;
T_CH2[2*X + 1] := 83;
ELSE
T_CH2[X] := 83;
END_IF;
ELSIF TEST[RETURN_CODE*3 + 12] = 16#D THEN
Das Ganze dann über Paar Kilometer so, und wieder holt sich auch noch Paar Mal. Dazu noch ist dieses "TEST" ein AT-Zugriff auf eine extern refernzierte Variable. Was es im Compilat macht, kannst du dir glaube ich vorstellen.
Die das geschrieben haben, das sind offensichtlich Leute, die keine Ahnung davon haben, wie man Case Anweisungen umsetzt, und wie man generell auf Steuerungen programmiert. Und dazu wahrscheinlich auch noch Leute, die keinerlei innere Motivation haben, irgendetwas richtig zu machen, oder überhaupt zu lernen wie man es richtig macht. Formelle Bachelor-Idioten, die für Appel und Ei irgendwelche "blöde bits und bytes" durch die Gegend schieben. Wahrscheinlich hergeholt aus irgend einem bengalischen Dorf, um unsere PCS7 Bibliotheken zu programmieren. Wir schauen großartigen Zeiten entgegen.