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 

ENDFOREND; // 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
 GCC и FPC - и то скрепя сердце.
 GCC и FPC - и то скрепя сердце.Преимущество "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;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1