A begin…end közötti utasítások sorozatát összetett utasításnak, blokknak nevezzük. Azon Pascal utasítások esetén, amelyek csak egy utasítást tudnak végrehajtani, fontos az egynél több utasítás összefogása egy blokkba.
feltételes utasítások:
A feltételes utasításokkal egy feltétel teljesülésétől tehetjük függővé egy utasítás (összetett utasítással akár utasításblokk) végrehajtását. Attól függően, hogy a feltételünk csak kettő, avagy több esetre bontja fel a végrehajtás menetét, alkalmazzuk az if utasítást vagy a case utasítást.
if logikai kifejezés then utasítás1 else utasítás2;Az if szerkezetet ’;’ zárja, a else elé viszont nem szabad ’;’-t tenni, mivel a Pascal az egész szerkezetet tekinti egyetlen utasításnak. Az utasítás1, utasítás2-nek egy utasításnak kell lenni, ezért ha többet szeretnénk végrehajtani, begin end blokkba kell zárni őket.
if logikai kifejezés then
begin
end
else
begin
end;
A case utasítással könnyen megoldható a többirányú elágaztatás.
case szelektor of
címke1: utasítás1;
...
címken: utasításn;
else
end;
A szelektor csak bájton ábrázolható, sorszámozott típus lehet (felsorolási típusok, karakter, byte, shortint, boolean). A konstansok (címkék) típusa meg kell egyezzen a szelektor típusával. Az utasítások akkor kerülnek végrehajtásra, ha címkéjük értéke megegyezik a szelektor értékével. Ha nincs ilyen, akkor az else ág kerül végrehajtásra.
A ciklus utasításokkal utasítás(ok) ismételt végrehajtását lehet előírni. Az ismétlések számáról rendelkezésre álló információ alapján dönthetjük el, melyik ciklusszervező utasítást alkalmazzuk.
A with utasítás egy rövidítési lehetőség rekordok vagy objektumok mezőinek, metódusainak rövidebb eléréséhez. A with utasításon belül a megnevezett rekord mezői egyszerűen a mezőazonosítóval hivatkozhatók, mintha lokális változók lennének. A mezőnevek az azonos nevű létező változót elfedik! A with utasítás fejében szereplő rekord vagy objektumhivatkozás kifejezése csak egyszer kerül kiértékelésre.
Példa: