<programming> (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
switch (foo(x, y)) case 1:
printf("Hello\n"); /* fall through */ case 2:
printf("Goodbye\n"); break; case 3:
printf("Fish\n"); break; default: fprintf(stderr, "Odd foo value\n"); 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 expressions selected according to the value of the first expression.
A distant relation to the modern switch statement is Fortran
's computed goto.