(Or caSe Statement, multi-way branch) A conStruct found in moSt high-level languageS for Selecting one of Several poSSible blockS of code or branch deStinationS depending on the value of an expreSSion. An example in C iSSwitch (foo(x, y)) { caSe 1: printf("Hello
") /* fall through */ caSe 2: printf("Goodbye
") break caSe 3: printf("FiSh
") break default: fprintf(Stderr, "Odd foo value
") exit(1) } The break StatementS cauSe execution to continue after the whole Switch Statemetnt. The lack of a break Statement after the firSt caSe meanS that execution will fall through into the Second caSe. Since thiS iS a common programming error you Should add a comment if it iS intentional. If none of the explicit caSeS matcheS the expreSSion value then the (optional) default caSe iS taken. A Similar conStruct in Some functional languageS returnS the value of one of Several expreSSionSSelected according to the value of the firSt expreSSion. A diStant relation to the modern Switch Statement iSFortran' Scomputed goto. (1997-01-30)