错误、漏洞、问题 - 页 2641 1...263426352636263726382639264026412642264326442645264626472648...3184 新评论 traveller00 2020.02.11 02:52 #26401 bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } } void OnStart() { Func(); } 有这样一位顾问。它抛出了一个错误 '}' - not all control paths return a value Test.mq5 10 1 如果你评论出来继续,那就好了。只有我一个人认为这很奇怪吗? Vladimir Karputov 2020.02.11 04:11 #26402 traveller00: 有这样一位顾问。它抛出了一个错误 如果你评论出来继续,那就好了。难道只有我一个人认为这很奇怪吗? 如果一个函数没有被声明为void,它必须返回一个值。 bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } //--- return(false); } traveller00 2020.02.11 04:39 #26403 这个函数的唯一出口是通过i==100。为什么他认为 "继续 "的出现会导致函数的额外退出? Vladimir Karputov 2020.02.11 05:01 #26404 traveller00: 离开这个函数的唯一途径是通过i==100。为什么他认为 "继续 "的出现会导致功能的额外退出? 单一或多个输出并不重要。重要的是,你声明了一个类型不是void的函数--这意味着该函数必须返回一个值。 traveller00 2020.02.11 05:41 #26405 该函数并返回一个值 bool Func() { for(int i=1;;++i) { if(i==1) continue; if(i==100) return false; } } 这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。如果MQL对此仍有自己的标准,那么,如果继续被删除,为什么它能正常构建? Alexey Viktorov 2020.02.11 06:52 #26406 traveller00: 该函数并返回一个值 这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。 如果MQL对此仍有自己的标准,那么,如果继续被删除,为什么它能正常构建? 编译器不知道循环是否会被处理,代码是否会达到返回;因此,它需要一个安全功能。 traveller00 2020.02.11 07:30 #26407 Alexey Viktorov: 编译器不知道循环是否会被处理,代码执行是否会达到返回;这就是为什么它需要一个安全预防措施。 C/C++编译器完全知道这一点。据我所知,MQL编译器是基于C/C++编译器之一的。但话又说回来,即使它有自己的逻辑,为什么没有继续它就知道,而有了继续这种知识就没有了? Alexey Viktorov 2020.02.11 09:07 #26408 traveller00: C/C++编译器完全知道这一点。据我所知,MQL编译器是基于C/C++编译器之一的。但话又说回来,即使它有自己的逻辑,为什么没有继续它就知道,而有了继续这种知识就没有了? 可能是因为只有第一眼看到这种代码的人 bool Func() { for(int i=1;;++i) { if(i==100) continue; if(i==100) return false; } } 可以不假思索地猜出将要发生什么。在我看来,应该是C和C++,而不是MQL。正是mql防止了这种意外的错误。 [删除] 2020.02.11 09:51 #26409 traveller00: 该函数并返回一个值 这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。 如果MQL在这方面仍有自己的标准,那么,如果继续被删除,为什么它能正常构建? 你的这个功能是一个错误。如果i==100,那么下一次对相同的i==100的检查将不起作用。而你会得到一个无限的循环。 [删除] 2020.02.11 14:21 #26410 亲爱的开发者,请指出这个错误。 Обсуждение статьи "Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)" 2018.06.10www.mql5.com Опубликована статья Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II): Автор: Anatoli Kazharski... 1...263426352636263726382639264026412642264326442645264626472648...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有这样一位顾问。它抛出了一个错误
如果你评论出来继续,那就好了。只有我一个人认为这很奇怪吗?
有这样一位顾问。它抛出了一个错误
如果你评论出来继续,那就好了。难道只有我一个人认为这很奇怪吗?
如果一个函数没有被声明为void,它必须返回一个值。
离开这个函数的唯一途径是通过i==100。为什么他认为 "继续 "的出现会导致功能的额外退出?
单一或多个输出并不重要。重要的是,你声明了一个类型不是void的函数--这意味着该函数必须返回一个值。
该函数并返回一个值
这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。如果MQL对此仍有自己的标准,那么,如果继续被删除,为什么它能正常构建?
该函数并返回一个值
这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。 如果MQL对此仍有自己的标准,那么,如果继续被删除,为什么它能正常构建?
编译器不知道循环是否会被处理,代码是否会达到返回;因此,它需要一个安全功能。
编译器不知道循环是否会被处理,代码执行是否会达到返回;这就是为什么它需要一个安全预防措施。
C/C++编译器完全知道这一点。据我所知,MQL编译器是基于C/C++编译器之一的。但话又说回来,即使它有自己的逻辑,为什么没有继续它就知道,而有了继续这种知识就没有了?
C/C++编译器完全知道这一点。据我所知,MQL编译器是基于C/C++编译器之一的。但话又说回来,即使它有自己的逻辑,为什么没有继续它就知道,而有了继续这种知识就没有了?
可能是因为只有第一眼看到这种代码的人
可以不假思索地猜出将要发生什么。在我看来,应该是C和C++,而不是MQL。正是mql防止了这种意外的错误。该函数并返回一个值
这是该功能的唯一出路。也就是唯一必须返回一个值的地方。而C/C++编译器也同意我的看法。 如果MQL在这方面仍有自己的标准,那么,如果继续被删除,为什么它能正常构建?
你的这个功能是一个错误。如果i==100,那么下一次对相同的i==100的检查将不起作用。而你会得到一个无限的循环。