Switch-lause

Usein halutaan seuraavan toiminnon riippuvan tietystä arvosta. Tämän voi toteuttaa if-lauseilla, mutta helpompaa on käyttää switch-lausetta, joka on muotoa:

switch (<lauseke>)
{
  case <lauseke1>: <lause1>; ... ; break;
  case <lauseke2>: <lause2>; ... ; break;
  ...
  default: <lause>; ...
}

Switch toimii seuraavasti: ensin lasketaan lausekkeen arvo. Sitten sitä verrataan case-lauseiden perässä olevien lausekkeiden arvoihin. Suoritus jatkuu ensimmäisen case-lauseen kohdalta, jonka lausekkeen arvo vastaa alkuperäistä arvoa, ja jatkuu break-lauseeseen saakka. Jos millään case-lauseella ei ole oikeaa arvoa, suoritus jatkuu default-lauseen kohdalta. (default-lausetta ei ole välttämätöntä käyttää.) Huomaa, että samalle lauseelle voidaan asettaa monta case-lausetta, ja että break-lause ei ole pakollinen: jos sitä ei ole, suoritus yksinkertaisesti jatkuu seuraavan case-lauseen koodin kohdalta.

Esimerkki
Seuraava ohjelma toimii sen mukaan, mitä näppäimistön näppäintä painetaan.

switch (keyboard_key)
{
  case vk_left:
  case vk_numpad4:
    x -= 4; break;
  case vk_right:
  case vk_numpad6:
    x += 4; break;
}