alexs писал(а):ну уж если совсем тюнинг наводить - то тогда так:
Наверное я не правильно обозвал второй вариант, слишком похоже
на просто конец в Обероне. Можно что то вроде completefor.
- Код: Выделить всё
- X := 20; 
 for f := 10 to X do begin
 WriteLn(f);
 if f = 15 then break;
 breakfor; // опциональный параметр
 WriteLn('Цикл был прерван. Значение F=', f);
 completefor;  // опциональный параметр
 WriteLn('А сюда бы мы попали, если бы break не было. Значение F=', f);
 end; {end for}
 // сюда попадаем в любом случае, если Х < 10 то F = 10.
 WriteLn('Значение F=', f);
Bonart писал(а):Для возможности эффективной реализации компилятора - в идеале переменная цикла вне его не должна существовать. Как и сделано в Аде.
Понял, со значением переменной цикла после цикла проясняется.
Может как то явно указывать, если переменная цикла нужна после
цикла, нпример использовать ":=", а когда не нужна просто "=" ?
Ну равна в пределах цикла и всё тут.
alexs писал(а):аналогично строить для циклов while-do и repeat-until
Да, конечно ! А вот дать для всех одинаковое имя или для каждого своё
это вопрос. Для простоты компилятора и обучения лучше одно.
Например что то вроде complete и breaked.
Для читаемости программ - разные.
alexs писал(а):также можно отказаться от открывающего begin  в циклах 
for и while - но это дело вкуса лично мне они всёж нравятся (а может 
привычка).
Да, либо от begin, либо наоборот от концов конструкций. Те от do,
then, ... А begin можно или сократить до 3 букв или использовать
вместо него do.
bw, какая альтернатива этому сейчас ? :
- Код: Выделить всё
- for f := 1 to 10 do begin
 for  ff := 1 to 10 do begin
 for  fff := 1 to 10 do begin
 if (f = 5) and (ff = 5) and (fff = 5) then goto ex;
 end;
 end;
 end;
 
 ex: