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: