du kannst es analogiemäßig erklären und umschreiben wie du willst, wem oder was immer es pseudocodemäßig entsprechen mag, aber es bleibt dabei, dass bei Erfüllung der Bedingung eine dem Integerwert entsprechende gleichnamige Integer-Sprungmarke angesprungen wird, die genau wie bei goto-labels eine Konstante sein muss und auch genau wie bei Lables von einem Doppelpunkt gefolgt wird:
if(x==1) goto 1;
if(x==2) goto 2;
if(x==3) goto 3;
if(x==4) goto 4;
goto default;
1: ...
2: ...
3: ...
4: ...
default: ...
Es entspricht aber keinesfalls eher oder unmittelbarer einem kaskadierten
if/else if /else if/...
wo dann auch nicht der Rest wie bei if/else-Körpern übersprungen wird, sondern ebenfalls wie bei goto Labels einfach schrittweise weitergearbeitet wird und wo in jedem else-Körper auch wieder Variablen-Ausdrücke, floats oder statements erlaubt wären.
Wie auch immer:
alles ist legaler C Code und hat seine gleichwertige Daseins-Berechtigung.
Lesezeichen