Selain dengan menggunakan perulangan for, kita juga bisa menghitung faktorial dengan perulangan while do seperti contoh berikut:
program HitungFaktorial3; {$APPTYPE CONSOLE} var n,i,faktorial:cardinal; begin Write('Masukkan sebuah bilangan: '); Readln(n); faktorial:=1; if (n<>0) then begin i:=1; while (i<=n) do begin faktorial:=faktorial*i; i:=i+1; end; end; Write('Faktorial dari ',n); Writeln(' adalah ',faktorial); Writeln('Tekan Enter'); Readln; end.
Sebelum masuk kedalam perulangan, kita tentukan nilai i terlebih dahulu. Di dalam perulangan, nilai i kita modifikasi dengan cara menambahnya dengan 1.
Berbeda dengan perulangan menggunakan for yang perubahan variabelnya selalu selisih 1, maka perubahan variabel pada perulangan dengan while do tidak selalu selisih 1.