2.5.3 Moniosainen ehtolause (if..else)

Jos käytettävä ehto on selvästi joko-tai -ehto, täytyisi edellä esitetyn nojalla tehdä kaksi ehtolausetta, vaikka ehdot olisivat selvästi toisensa poissulkevia, esim.

if (tunnit < 6)
  cout << "Onpa aikaista!" << endl;
if (tunnit >= 6)
  cout << "Aika nousta!" << endl;

Tällaisten ehtolauseiden kirjoittaminen tuntuu turhalta ja sangen tehottomalta. Esimerkissä joudutaan suorittamaan kaksi vertailuoperaatiota, kun siinä oikeastaan tarvittaisiin vain yksi vertailu.

Ehtolauseesta on olemassa versio, jossa ilmoitetaan, mitä tulee tehdä, jos mainittu ehto ei toteudu. Lauseen muoto on

if (ehto)
  lause1;
else
  lause2;

Näin ollen edellä esitetyt kaksi ehtolausetta voitaisiin yhdistää yhdeksi kirjoittamalla

if (tunnit < 6)
  cout << "Onpa aikaista!" << endl;
else
  cout << "Aika nousta!" << endl;

Jälleen on syytä huomauttaa eräästä virhemahdollisuudesta, etenkin muita ohjelmointikieliä (ennen kaikkea Pascalia) taitaville: lauseen loppuun täytyy tulla puolipiste - jopa ennen sanaa else, vaikka se kenties alkuun tuntuukin kummalliselta.