/
driver3.2@242/autoconf/
driver3.2@242/doc/LPC/
driver3.2@242/hosts/
driver3.2@242/hosts/amiga/NetIncl/
driver3.2@242/hosts/amiga/NetIncl/netinet/
driver3.2@242/hosts/amiga/NetIncl/sys/
driver3.2@242/hosts/atari/
driver3.2@242/hosts/fcrypt/
driver3.2@242/mudlib/
driver3.2@242/mudlib/sys/
driver3.2@242/util/
driver3.2@242/util/indent/hosts/next/
driver3.2@242/util/make_docs/
switch (expr) statement;

Branch to the case label in statement that matches expr.
If no matching case label is found branch to the default label in statement.

A case label has the form
case expr_n :
where expr_n must be constant, or the form
case expr_n1 .. expr_n2 :
where expr_n1 and expr_n2 must be numeric constants.

Either all case labels have to be strings or all have to be numeric.
Only 0 is special: it is allowed in a switch statement where all other
labels are strings.

A default label has the form
default :
The default label defaults to the end of statement if not given explicitly.

Whenever a 'break' statement is executed inside 'statement' a branch
to the end of the switch statement is performed.

Typical usage:

switch(random(100)) {
  case 0 .. 22 : write("Nothing happens"); break;
  case 23 .. 27 :
    write("You are surrounded by a golden glow");
    this_player()->heal_self(random(3));
    break;
  case 28 .. 32 :
    write("The water was poisoned!\n");
    this_player()->add_exp(this_player()->hit_player(random(4)));
    break;
  case 33 : write("You hear a voice whispering: "+random_hint());
  /* fall through */
  case 34 :
    write("While you didn't paid attention, a water demon snatches\n\
a coin out of your purse!\n");
    this_player()->add_money(-1);
    break;
  default : write "You hear some strange noises\n"; break;
  case 42 : return;
  case 99 : write("It tastes good.\n";
}