Aksi setelah then pada pernyataan if pada contoh program sebelumnya hanya merupakan statemen tunggal, jadi tidak diperlukan begin dan end;. Akan tetapi aksi setelah else merupakan aksi dengan statemen yang majemuk, jadi dibutuhkan begin dan end;.
Perhatikan statemen pertama pada blok else. Statemen tersebut adalah statemen faktorial:=1 yang merupakan statemen yang sama dengan statemen pada bagian setelah then. Oleh karena itu, kita bisa merubah susunan program menjadi sebagai berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | program HitungFaktorial2; {$APPTYPE CONSOLE} var n,i,faktorial:cardinal; begin Write('Masukkan sebuah bilangan: '); Readln(n); faktorial:=1; if(n<>0)then for i:=1 to n do faktorial:=faktorial*i; Write('Faktorial dari ',n); Writeln(' adalah ',faktorial); Writeln('Tekan Enter'); Readln; end. |
Isi variabel faktorial ditentukan berisi 1. Hanya jika n tidak sama dengan nol maka nilai faktorial perlu diganti.
Program ini akan menghasilkan nilai yang tepat sama dengan program yang pertama.

