'Условное ветвление - "GoTo" Kluge ?

 
Пытаюсь найти "ключ" / "обходной путь" для условного ветвления/GoTo в MQL4
 
Не нужно корячиться. Просто закодируйте его правильно, и проблема обычно решается сама собой. Опубликуйте проблему и ваш код.
int nu=0; switch (nu){
   default:
   :
   if (condition) break;
   :
}
for(int nu=0; nu <= 0; nu++){
   :
   if (condition) break;
   :
}
if (nu == 0) Print("break was taken");
 
https://docs.mql4.com/basis/operators/if

https://docs.mql4.com/basis/operators/switch

 

Я думаю, что мы имеем в виду разные вещи. Я хочу иметь возможность переходить к любому месту в программе, а не просто пропускать что-то, что не соответствует условиям, и переходить к следующим последовательным операторам, функциям и т.д.

Большинство современных "структурированных" языков программирования не позволяют использовать команды GoTo, поскольку они могут стать настоящим кошмаром. Обозначение "структурированный" на самом деле относится к тому факту, что они не позволяют использовать операторы GoTo. Однако если использовать их с осторожностью, они могут быть очень полезны. Однако проблемы, которые могут возникнуть при их использовании, достаточно существенны, чтобы использовать их с оговоркой: "Использовать на свой страх и риск!".

Другая возможность - иметь различные внешние подпрограммы, модули, переменные, функции и т.д., которые можно "вызывать", когда это необходимо. Либо внутри основной программы, либо в отдельных программах. Обычно они выполняют свою специфическую функцию и затем возвращают полученные данные обратно в основную программу для использования. Они есть в некоторых современных структурированных языках программирования и не так опасны, как использование команд 'GoTo'. Возможно, для этого подходит использование файлов Include, Library или даже .dll? Я еще не выяснил, как передавать переменные, данные, функции и т.д. из этих других файлов обратно в основную программу. И могу ли я вообще использовать их таким образом? Возможно, в некоторых случаях я могу добиться этого с помощью глобальных переменных в советнике.

 
Спасибо OneWithZachy
 
FourX:
Спасибо OneWithZachy

Правда???

Я читал вашу тему тогда, видел ваш рейтинг, понятия не имею, что такое kluge, поэтому не ответил :)

Для передачи в функцию вы можете передать ее значение или передать как параметры, для передачи в dll, вы можете посмотреть это видео от Patrick S Nouvion

Узнали больше?

напишите, если у вас есть еще вопросы :)

 

Согласен, если вы программируете в функциях, то GoTo вам не понадобится.

 
onewithzachy:

Правда???

Я читал вашу тему тогда, видел ваш рейтинг, понятия не имею, что такое kluge, поэтому не ответил :)

Для передачи в функцию вы можете передать ее значение или передать как параметры, для передачи в dll, вы можете посмотреть это видео от Patrick S Nouvion

Узнали больше?

напишите, если у вас есть еще вопросы :)

Я еще не углублялся в функцию 'Call'. Хотя, по большей части, я надеюсь выяснить, как "прыгать" (!не "сверхсветовой", хотя (< 8) и "GoTo" определенные места в программах EA, кроме как последовательно. Из того, что вы сказали, я не знаю, будет ли это работать для того, что я хочу сделать. Но это определенно полезно для изучения. Все в свое время и по мере необходимости.

Kluge" - это что-то, что "собрано" из множества вещей для достижения чего-то, что обычно не делается. В данном случае я пытаюсь собрать функцию/команду "GoTo" в MQL4, которая не имеет такой стандартной возможности, потенциала и части MQL4. Как уже было сказано, есть веские причины, почему их нет. Раньше это было стандартной частью многих языков программирования, но поскольку они могут очень легко вызвать множество проблем, их убрали из (почти?) всех языков программирования, насколько я знаю. Я не думаю, что в C есть такая функция, не так ли? Они убрали их из COBOL, и я не думаю, что они есть в FORTRAN или Visual BASIC?

Вот пример: Десятилетия назад я написал небольшую, 5 или 6-строчную BASIC-программу (сегмент) с несколькими, вложенными и условно ветвящимися командами 'GoTo' в ней. Даже с включенным 'Tracer' я не мог понять, что она делает! )< 8) К сведению: команда "Tracer On" была "TRON". Узнаете аббревиатуру? Так назывался первый цифровой анимационный фильм, ОЧЕНЬ убогий, снятый студией Уолта Диснея, в котором не было ни одной сюжетной линии. Просто несколько якобы гипер/световых мотоциклов гоняли по (микроскопическому?) (световому?) лабиринту/матрице. Я думаю, что они сделали ремейк этого фильма. Но поскольку первый был настолько плох, я его не видел. GI все еще GO = GIGO

 
SDC:

Я согласен, если вы программируете в функциях, вам не нужен GoTo

Привет SDC,

Как и в большинстве программирования, MQL4 - это практически все "Функции ", которые, за исключением переходов через некоторые линии, не имеют истинной функции "GoTo", которую я пытаюсь понять, как сделать в MQL4 EA, поэтому я не уверен, с чем вы "согласны" и что вы имеете в виду и на что ссылаетесь в контексте этого поиска? Пожалуйста, поясните и объясните. Я не спорю. Похоже, что у вас есть что-то на уме, и я хотел бы знать, что это и как это может быть полезно для нас.

 
Я использовал GOTO еще во времена BBC Basic... Я даже использовал BBC BASIC на своей постоянной работе в течение примерно 7 лет ... даже в BBC Basic были GOSUB и RETURN, чтобы можно было использовать подпрограммы(функции) ... зачем вам вообще нужно использовать что-то, напоминающее GOTo в MQL4 ? Возможно, вы можете объяснить, что вам нужно?
Причина обращения: