Switch-lause

Joissain tapauksissa saatat haluta, että jokin toiminto riippuu tietystä arvosta. Voit tehdä tämän käyttämällä if-lauseita, mutta switch-lauseen käyttäminen on helpompi vaihtoehto käyttää. Switch-lause on muotoa

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

Tämä toimii seuraavanlaisesti: ensin lauseke suoritetaan. Sitten sen palauttamaa tulosta verrataan case-lauseiden jälkeen oleviin lausekkeisiin. Suoritus jatkuu yhtenevän arvon palauttavasta case-lauseesta aina seuraavaan esiintyvään break-lauseeseen saakka. Jos yksikään case-lause ei palauta samaa arvoa, suoritetaan default-lauseen jälkeen oleva koodi. (Switch-lauseessa ei tarvitse välttämättä olla default-lausetta.) Huomaa, että että yhteen switch-lauseeseen voi sisällyttää useita case-lauseita. Break-lause ei myöskään ole välttämätön. Jos sitä ei ole, suoritus yksinkertaisesti jatkuu aina seuraavan case-lauseen koodilla.

Esimerkki
Seuraava ohjelmanpätkä toimii sen mukaan, mitä 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;
}