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:
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.

