Bifurcación condicional - "GoTo" Kluge ?

 
Tratando de averiguar un 'kluge' / 'work around' para Conditional Branching/GoTo en MQL4
 
No hace falta kluge. Simplemente codifícalo correctamente y el problema suele resolverse solo. Publica el problema y tu código.
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

 

Creo que nos estamos refiriendo a cosas diferentes aquí. Quiero ser capaz de saltar a CUALQUIER lugar dentro del programa en lugar de sólo saltar sobre algo que no cumple las condiciones y sólo pasa a las siguientes funciones de declaraciones secuenciales, etc.

La mayoría de los lenguajes de programación "estructurados" de hoy en día no permiten el uso de comandos GoTo, ya que pueden ser verdaderas pesadillas. La designación de "estructurado" se refiere al hecho de que no permiten el uso de sentencias GoTo. Sin embargo, si se utilizan con discreción, hay veces que pueden ser muy útiles. Sin embargo, los problemas que pueden surgir de su uso son lo suficientemente importantes como para que deban ser utilizados con la advertencia de: "¡Utilícelo bajo su propio riesgo!

Otra posibilidad es tener diferentes subrutinas externas, módulos, variables, funciones, etc. que uno puede "llamar" cuando sea necesario. Ya sea dentro del programa principal... o en otros separados. Generalmente estas llevan a cabo su función específica y luego devuelven los datos resultantes al programa principal para que los utilice. Estos se encuentran en algunos lenguajes de programación estructurados modernos y no están tan cargados de peligro como el uso de comandos 'GoTo'. ¿Quizás el uso de archivos Include, Library o incluso .dll sean adecuados para esto? Todavía no he descubierto cómo pasar variables, datos, funciones, etc. de estos otros archivos al programa principal. ¿Ni tampoco si puedo utilizarlos de esta manera? Tal vez en algunos casos puedo lograr esto con el uso de variables globales en el EA.

 
Gracias OneWithZachy
 
FourX:
Gracias OneWithZachy

En serio..,

Leí tu hilo en su día, vi tu valoración, no tengo ni idea de lo que es kluge, así que no respondo :)

Para pasar a la función se puede pasar su valor o pasar como parámetros, para pasar a la dll, es posible que desee ver este video de Patrick S Nouvion

¿Interpretaste más?

escribe si tienes más preguntas :)

 

Estoy de acuerdo en que si programas en funciones no necesitarás GoTo

 
onewithzachy:

En serio..,

Leí tu hilo en su día, vi tu valoración, no tengo ni idea de lo que es kluge, así que no respondo :)

Para pasar a la función se puede pasar su valor o pasar como parámetros, para pasar a la dll, es posible que desee ver este video de Patrick S Nouvion

¿Interpretaste más?

escribe si tienes más preguntas :)

Todavía no he profundizado mucho en la función 'Call'. Aunque en su mayor parte, estoy esperando para averiguar cómo 'Jump' (!no 'FTL' aunque (< 8) y 'GoTo' lugares específicos en los programas de EA que no sea secuencialmente. Por lo que has dicho, no sé si funcionará para lo que quiero hacer. Pero definitivamente es bueno aprender y conocer. Todo a su tiempo y según lo necesite.

Un 'Kluge' es algo que se 'improvisa' a partir de una variedad de cosas para lograr algo que normalmente no se hace. En este caso estoy tratando de improvisar una función / comando 'GoTo' en MQL4 que no tiene esto como una característica estándar, la capacidad y la parte de MQL4. Como se ha dicho hay buenas razones para no tenerlos. Esto solía ser parte estándar de muchos lenguajes de programación, pero como pueden causar muy fácilmente un montón de problemas, que los sacó de (casi?) todos los lenguajes de programación por lo que yo sé. No creo que C tenga uno, ¿verdad? Lo quitaron de COBOL y no creo que haya uno en FORTRAN, ni en Visual BASIC?

Un ejemplo: Hace décadas escribí un pequeño programa en BASIC de 5 o 6 líneas (segmento) con múltiples comandos 'GoTo' anidados y condicionales. ¡Incluso con el 'Tracer' encendido, no pude averiguar lo que estaba haciendo! )< 8) Para tu información: El comando para 'Tracer On' era 'TRON' ¿Reconoces el acrónimo? Este fue el nombre de la primera película de animación digital que era MUY cojo, hecho por Walt Disney Studios, que realmente no tenía mucho de una línea de la historia. Sólo unas motos supuestamente a velocidad hiperlumínica que corrían dentro de un laberinto/matriz (¿microscópico?). Creo que hicieron un remake de la misma. Pero como la primera era tan mala, no la vi. GI sigue siendo GO = GIGO

 
SDC:

Estoy de acuerdo en que si programas en funciones no necesitarás GoTo

Hola SDC,

Como con la mayoría de la programación, MQL4 es prácticamente todo 'Funciones ' que aparte de saltar algunas líneas, no tiene una verdadera función 'GoTo' que estoy tratando de averiguar cómo hacer dentro de un MQL4 EA Así que no estoy seguro de lo que está 'de acuerdo con' y lo que quiere decir y se refiere en el contexto de esta búsqueda? Por favor, ampliar y explicar. No estoy discutiendo. Parece que tienes algo en mente y me gustaría saber qué es y cómo podría ser beneficioso para nosotros.

 
Yo usé GOTOs en los días de BBC Basic... Incluso utilicé BBC BASIC en mi trabajo a tiempo completo durante aproximadamente 7 años... incluso BBC Basic tenía GOSUB y RETURN para que las subrutinas(funciones) pudieran ser utilizadas... ¿por qué querrías utilizar algo que se parezca a un GOTo en MQL4? quizás puedas explicar tu necesidad?