Ciało instrukcji SWITCHON może zawierać dowolną liczbę etykiet postaci CASE x: (gdzie x oznacza stałą) oraz opcjonalnie DEFAULT:. Jeżeli testowana wartość odpowiada tej podanej przy którejkolwiek etykiecie, wykonane zostaną instrukcje począwszy od tej etykiety. W przeciwnym wypadku, sterowanie zostanie przeniesione do DEFAULT lub, jeśli tej etykiety nie ma, poza SWITCHON. Napotkanie kolejnej etykiety CASE nie przerywa wykonywania instrukcji SWITCHON. Aby wymusić wyjście z bloku, należy skorzystać ze słowa ENDCASE.

Pętle BCPL udostępnia sześć rodzajów pętli:

WHILE warunek DO instrukcja – wykonuje instrukcję tak długo, jak warunek jest prawdziwy, instrukcja REPEATWHILE warunek – jak wyżej, ale warunek sprawdza dopiero po wykonaniu instrukcji, UNTIL warunek DO instrukcja – wykonuje instrukcję tak długo jak warunek jest fałszywy, instrukcja REPEATUNTIL warunek – jak wyżej, ale warunek sprawdza dopiero po wykonaniu instrukcji, instrukcja REPEAT – powtarza instrukcję w nieskończoność, FOR zmienna = od TO do BY krok DO instrukcja – tworzy zmienną kontrolowaną o nazwie zmienna i inicjalizuje wartością od; przy każdej iteracji do zmiennej kontrolowanej dodawana jest wartość krok; pętla się przerywa, gdy zmienna kontrolowana przekroczy wartość do (będzie większa lub mniejsza, zależnie od znaku krok);