I know that the programming experts think the opposite.

In MSElang it is possible to program without 'return' because of the mandatory result assignment at function-end. 'return' is for convenience only.
Модератор: Модераторы
Я обычно работаю под виндой в FARе, примерно то же самое, и у меня открыто обычно 3-6 сеансов этого FAR
IF lExpression [THEN]
Commands
[ELSE
Commands]
ENDIF
DO CASE
CASE lExpression1
[Commands]
[CASE lExpression2
[Commands]]
...
[CASE lExpressionN
[Commands]]
[OTHERWISE
[Commands]]
ENDCASE
FOR VarName = nInitialValue TO nFinalValue [STEP nIncrement]
Commands
[EXIT]
[LOOP]
ENDFOR
DO WHILE n < 100
n = n + n
ENDDO
ENDFOR
END; // FOR i:=0 TO ..
endif;
endwhile;
endif;
endcase;
end;
end;
end;
end;
debi12345 писал(а):EXIT & RETURN будут заменены на GOTO - с целью ВСЕГДА ВИДЕТЬ откуда и куда (к какой конкретно метке) идет ветвление.
У FAR-а появился SCP-режим(SSH) работы с файлами- но млын (!?) без SOCK5-прокси
mse писал(а):Although 'return'/'exit' is dangerous because actually it is a hidden 'goto end' which bypasses possible cleanup code and 'return'/'exit' can easily been overlooked if deeply nested and seldom triggered.
debi12345 писал(а):при исследовании новейших версий выяснилось,что FAR-ский NetBox оказываеся умеет крутые дела
Но когда приходится удаленно компилировать проект, то я все файлы переношу на удаленную сторону не через FTP, а через SVN или GIT
Преимущество "exit", "break", "continue" в том, что глядя на эти операторы однозначно понимаешь, куда произойдет переход. А "goto" для своего понимания, нужно найти и увидеть метку,
for i:= 0 ..
j_cycle:
for j:= 0 ..
for k:= 0 .. do
if .. then
goto j_cycle;
else
goto finish;
end;
end;
end;
finish:
end;
debi12345 писал(а):Мартин также предлагает использовать GOTO для перехода на заданный нестинг-левел в циклах - аналог BREAK (shit) & NEXT(shift).
debi12345 писал(а):В этом вся и фишка - НУЖНО НАЙТИ И УВИДЕТЬ метку. То есть если что-то глючит - знаешь что искать. Закомментил декларацию метки - компилятор тебе сразу "найдет" (с матюками) все ссылки на нее. Согласен,что непривычно, но здравое зерно есть - защита от "оверлукинга".
debi12345 писал(а):То есть оставить необходимый универсальный набор ключевых слов для ветвлений. Пусть даже ценой нескольких лишних линий кода.
debi12345 писал(а):END проблемы бывают исключительно, если работать в блокноте, а не в RAD.
Вы хотите сказать никогда сами не впечатываете и не удаляете ENDы ? Не вписываете встроенные функции ?
что такое писать руками begin-end.
И уж тем более следить за парностью их. Зачем, когда среда всё это делает замечательно.
Readable.
MSElang programs should read like a letter.
outer_loop: loop
...
loop
...
if cond then break(outer_loop); end; //выход из обоих циклов
...
if cond2 then break; end; //выход из текущего цикла
...
end;
...
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2