Szekvencia
Az OPL-ben általában egy sor csak egy utasítást tartalmaz, és az egymást követő sorokban levő utasítások szekvenciája a program. Lehetőség van egy sorba több utasítást is írni, ezeket : jellel kell elválasztani. Az utasítások végét nem kell semmilyen karakterrel jelölni, és a : karakter is csak az utasítások elválasztására szolgál.
Vezérlésátadó utasítások
Az OPL-ben egy vezérlésátadó utasítás van, a GOTO. Alkalmazási formája:
GOTO label vagy GOTO label::
...
label::
A cimkének
Elágazások
Egy elágazásos utasításcsoportot találhatunk a nyelvben:
IF feltétel1
utasítások1
ELSEIF feltétel2
utasítások2
ELSEIF feltétel2
utasítások2
:
:
ELSE
utasítások
ENDIF
Ha a feltétel1 teljesül, akkor végrehajtja az utasítások1-ben szereplő utasításokat. Ha nem teljesül, akkor megvizsgálja a feltétel2-t, és így tovább. Azt az ágat hajtja végre először, amelyiknél a feltétel teljesül. Ha nincs ilyen, akkor az ELSE ágat hajtja végre, ha van ilyen.
Ciklusok
DO
Utasítások
UNTIL felt
A DO...UNTIL egy hátultesztelő ciklus. Addig hajtódik végre, amíg a megadott feltétel igazzá nem válik. A ciklusfeltételnek numerikus értékre kiértékelhető kifejezésnek vagy összehasonlításnak kell lennie. A hátultesztelő ciklus használatakor a törzs egyszer mindenképpen végrehajtódik.
WHILE felt
Utasítások
ENDWH
A WHILE..ENDWH elöltesztelős ciklus, addig ismétlődik a ciklusmag végrehajtása, amíg a feltétel hamissá nem válik. A ciklusmag nem feltétlenül hajtódik végre.
Kilépő utasítások
Az BREAK utasítással léphetünk ki ciklusokból. Az az utasítás fog végrehajtóni, ami az ENDWH ill. UNTIL sor után közvetlenül van.
A CONTINUE utasítással egyből a ciklusfeltételre ugorhatunk, tehát a ciklusmag fennmaradó része nem fog végrehajtóni, de a ciklusban maradunk.