Ненецкий АО - лечение наркомании
Не будем приводить примеров более сложных заголовков

Не будем приводить примеров более сложных заголовков, так как пользоваться ими настоятельно не рекомендуется.
Входить в тело цикла разрешается только через заголовок цикла. Иначе говоря, вне тела цикла нельзя написать оператор перехода
к метке, метящей это тело или один из его внутренних операторов (если тело — составной или условный оператор, блок или цикл). Выйти из цикла можно, включив в его тело оператор перехода к метке, расположенной вне цикла. Пусть, например, требуется написать оператор, разрешающий переход к следующему оператору программы, если все элементы массива
array а [1: п]
положительны, и отсылающий к метке / в противном случае. Этот оператор может быть таким:
for i: = l step 1 until n do if a [i] ^ 0 then go to I
Здесь выполнение цикла прекращается, как только обнаруживается первый неположительный элемент массива а. В подобных случаях считается, что параметр цикла сохраняет то значение, которое он имел в момент перехода. Если же цикл завершился в результате исчерпания всех значений, предписанных заголовком, то значение параметра не определено.
Иногда бывает необходимо выйти из составного оператора или блока, образующего тело цикла, не выходя из самого цикла. Для этого можно воспользоваться так называемым пустым оператором. Пустой оператор в записи программы никак не обозначается и его выполнение не влечет никаких действий, но он может быть помечен. Метка, метящая пустой оператор в конце составного оператора или блока, располагается непосредственно перед символом end, ограничивающим этот оператор. Переход к такой метке влечет за собой завершение выполнения оператора.
Применение пустого оператора можно продемонстрировать на следующем примере. Пусть требуется вычислить сумму положительных элементов массива
array а [1: п]
Для этого следует просмотреть все элементы массива и, если окажется, что очередной элемент неположителен, то ничего с ним не делать, в противном случае прибавить его к ранее вычисленной сумме. Описание этого процесса на Алголе может быть таким:
s:=0;
for i : = 1 step / until n do begin if a [i] < 0 then go to /; s : = s~\-a[i]\
I: end
Здесь меткой /: помечен пустой оператор. Но можно было бы (и следовало бы)  воспользоваться   противоположным  условием в условном операторе: $:=0;
for i: = 1 step / until n do
if a [i]>0 then s:=s + a [t]