Edellä olevassa esimerkissä oli täsmälleen yksi, joka piti suorittaa, jos if-käskyn ehto oli tosi. Usein kuitenkin halutaan, että tässä tilanteessa suoritetaan useampi käsky.
Esimerkki: henkilön painoindeksi lasketaan siten, että paino (kiloissa) jaetaan pituuden (metreissä) neliöllä. Painoindeksin avulla voidaan päätellä, onko henkilö ali-, yli- vai normaalipainoinen. Haluamme kirjoittaa ohjelman, joka pyytää käyttäjältä pituuden sekä painon ja tulostaa sitten henkilön painoindeksin.
Periaatteessa ohjelma on hyvin yksinkertainen: pyydetään ja luetaan käyttäjän paino ja pituus, lasketaan painoindeksi ja tulostetaan se. Ongelma on kuitenkin siinä, että jos käyttäjä antaa vahingossa pituudekseen 0, jakolaskussa syntyy virhetilanne -- nollalla jako -- ja ohjelma kaatuu antaen käyttäjälle varsin kummallisen virheilmoituksen. Haluamme kuitenkin ohjelman kertovan käyttäjälle tässä tilanteessa selvästi, miksi painoindeksiä ei voi laskea. Ohjelman rakenne on seuraava:
pyydä ja lue käyttäjän paino ja pituus; if (paino != 0) laske painoindeksi tulosta painoindeksi else ilmoita, että painoindeksiä ei voi laskea
Haluamme siis suorittaa kaksi eri käskyä, jos if-käskyn ehto on tosi. Tämä voidaan tehdä kokoamalla nämä käskyt lohkoksi eli kootuksi lauseeksi panemalla ne aaltosulkujen sisään seuraavasti:
public class Painoindeksi1 { public static void main(String[] args) { double paino, pituus, painoindeksi; System.out.println("Anna painosi kiloissa"); paino = Lue.dluku(); System.out.println("Anna pituutesi metreissä"); pituus = Lue.dluku(); if (pituus != 0) { painoindeksi = paino / (pituus * pituus); System.out.println("Painoindeksisi on " + painoindeksi); } else System.out.println("Virheellinen pituus - painoindeksiä ei voi laskea"); } }
Tällöin kaikki aaltosulkujen sisällä olevat käskyt suoritetaan, jos if-käskyn ehto on tosi. Lohkoon voidaan koota yhteen mielivaltainen määrä käskyjä. Samanlainen lohko voidaan tarvittaessa kirjoittaa myös else-sanan jälkeen.