'条件分支--'GoTo' Kluge ?

 
试图 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文件的使用都适合于此?我还没有发现如何将这些文件中的变量、数据、函数等传回到主程序中。也不知道我是否能以这种方式利用它们?也许在某些情况下,我可以通过在EA中使用全局变量来实现这一点。

 
感谢OneWithZachy
 
FourX:
谢谢 OneWithZachy

真的吗?

我当时读了你的主题,看到了你的评价,不知道什么是kluge,所以没有回答:)

要传递给函数,你可以传递它的值或作为参数传递,要传递给dll,你可能想看看Patrick S Nouvion的 这个视频

了解更多?

如果你有更多问题,请回信 :)

 

我同意,如果你用函数 编程,你就不需要GoTo。

 
onewithzachy:

真的吗?

我当时读了你的主题,看到了你的评价,不知道什么是kluge,所以没有回答:)

要传递给函数,你可以传递它的值或作为参数传递,要传递给dll,你可能想看看Patrick S Nouvion的 这个视频

了解更多?

如果你有更多问题,请回信 :)

到目前为止,我还没有深入研究过 "调用 "函数。 虽然在大多数情况下,我希望弄清楚如何'跳跃'(!虽然不是'超光速'(<8)和'转到'EA程序中的特定位置,而不是按顺序。 从你所说的情况来看,我不知道这对我想做的事情是否有用。 但是,最值得学习和了解的是。 所有这些都是在适当的时候和我需要的时候。

Kluge "是指用各种东西 "拼凑 "起来的东西,以实现通常不做的事情。 在这种情况下,我试图在MQL4中拼凑一个'转到'功能/命令,而MQL4并没有将其作为标准功能、能力和一部分。 如前所述,有很好的理由不拥有它们。 这曾经是许多编程语言的标准部分,但由于它们很容易导致大量的问题,据我所知,他们把它们从(几乎?我不认为C语言有这个功能,对吗?他们把它从COBOL中删除了,我想FORTRAN中也没有,Visual BASIC中也没有?

这是一个很好的例子。几十年前,我写了一个小的、5或6行的BASIC程序(片段),其中有多个嵌套的、有条件的分支 "GoTo "命令。 即使开着 "跟踪器",我也搞不清楚它在做什么。 )< 8) 提示:"Tracer On "的命令是 "TRON",认得这个缩写吗? 这是第一部数字动画电影的名字,非常蹩脚,由沃尔特-迪斯尼工作室制作,其实没有什么故事线。只有一些所谓的超/光速摩托车在一个(微观的)(光的)迷宫/矩阵中飞驰。 我认为他们对它进行了翻拍。 但由于第一部太糟糕了,我没有看到它。 GI仍然是GO = GIGO

 
SDC:

我同意如果你用函数编程,你就不需要GoTo。

嗨,SDC。

就像大多数编程一样,MQL4几乎都是'函数 ',除了跳过一些线之外,没有真正的'转到'功能,我正试图找出如何在MQL4 EA中进行转到的功能,所以我不确定你'同意'什么,以及你在这个搜索背景下的意思和所指的是什么?请展开并解释。不是在争论。听起来你好像有什么想法,我想知道它是什么,以及它如何对我们有利。

 
我在BBC Basic时代就使用了GOTO . . .我甚至在我的全职工作中使用过BBC BASIC大约7年 ......甚至BBC BASIC也有GOSUB和RETURN,以便可以使用子程序(函数) ......为什么你会想在MQL4中使用任何类似于GOTO的东西? 也许你可以解释你的需要?