[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 721 1...714715716717718719720721722723724725726727728...1145 新评论 Igor Makanu 2010.07.19 14:31 #7201 Abzasc: 问题的关键是不要把变量、许多条件和计数器相加。 重点是要正确书写,而不是使用语言缩略语。 int a; for(a=0;a<8;a++){ //здесь что то делаем } for(a=0;a<8;a++){ //делаем что нибудь другое } [删除] 2010.07.19 14:33 #7202 Abzasc: 重点不是创建变量、大量的条件和计数器。 那么,请问,编译器允许你做这样的事情...... //+------------------------------------------------------------------+ int start() { bool flag; if(flag){ for(int a = 0; a < 10;a++){ Print("a = ", a); } }else{ for(a = 10; a > 0;a--){ Print("a = ", a); } } } //+------------------------------------------------------------------+ 默认标志是False,所以第一个声明了变量a 的for 循环不会被执行,这并不妨碍同一 "未声明 "的变量在else 分支中被使用: ) Artyom Trishkin 2010.07.19 14:33 #7203 Abzasc: 该条件如果 在这里,我们做一些事情 否则,如果另一个条件 做别的事 重点不是创建变量、大量的条件和计数器。 这并不要求你重新初始化该变量。按照你所写的去做,你的变量a就会在你的逻辑分支中的正确位置被使用,而无需重新初始化。宣布一次,为了你和人类的利益而使用它......。:)最主要的是不要迷失了方向和用途......。 [删除] 2010.07.19 14:38 #7204 ToLik_SRGV: 所以第一个声明了变量a的for循环将不会被执行 循环必须始终被执行。 [删除] 2010.07.19 14:40 #7205 IgorM: 那么,正确书写的要点,而不是使用语言的缩略语。 整个问题是缺乏{},不是吗?谢谢你! [删除] 2010.07.19 14:43 #7206 artmedia70: 这并不要求你重新初始化该变量。按照你所写的去做,你的变量a就会在你的逻辑分支中的正确位置被使用,而无需重新初始化。宣布一次,为了你和人类的利益而使用它......。:)最主要的是不要迷失了方向和用途......。 我是这样做的,在715页,18.07.2010 14:56,没有在计数器后面加括号... [删除] 2010.07.19 14:43 #7207 上面显示的 "效果 "证明了MQL-machine首先通过EX4文件查找声明的变量,并创建它们,而不管逻辑分支是否完整。一方面,它不节省内存,另一方面,你可以创建类似的结构,尽管在我看来这种风格不是最好的选择。 Igor Makanu 2010.07.19 14:47 #7208 Abzasc: 整个问题是在缺乏{},不是吗?非常感谢! 整个问题是在变量的声明 中。 int a; 我声明它,然后在需要的地方和时候使用它,而你却重复声明一个变量--很可能编译器没有跳过它。 如果你在循环中只有一条语句,那么你就不需要{},但如果你有更多的语句,那么你就必须放上{},否则你会发现为什么循环的计算不正确 SZZY:如果你刚刚开始,请在for后面加上大括号,你以后会明白的。 [删除] 2010.07.19 14:48 #7209 ToLik_SRGV: IgorM的代码没有出现任何错误。我不认为a会根据分支中提到的数量来分配内存,所以它是可以的。 [删除] 2010.07.19 14:49 #7210 Abzasc: 循环必须始终被执行。 循环与它有什么关系?这只是一个例子,在一个不知道会被使用的块中创建的变量仍然在 "播放",并且在整个start() 方法中都是可见的和可用的,不需要重新初始化它,更不需要在重复使用前去初始化它。 1...714715716717718719720721722723724725726727728...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
问题的关键是不要把变量、许多条件和计数器相加。
重点是要正确书写,而不是使用语言缩略语。
重点不是创建变量、大量的条件和计数器。
那么,请问,编译器允许你做这样的事情......
默认标志是False,所以第一个声明了变量a 的for 循环不会被执行,这并不妨碍同一 "未声明 "的变量在else 分支中被使用: )该条件如果
在这里,我们做一些事情
否则,如果另一个条件
做别的事
重点不是创建变量、大量的条件和计数器。
所以第一个声明了变量a的for循环将不会被执行
那么,正确书写的要点,而不是使用语言的缩略语。
这并不要求你重新初始化该变量。按照你所写的去做,你的变量a就会在你的逻辑分支中的正确位置被使用,而无需重新初始化。宣布一次,为了你和人类的利益而使用它......。:)最主要的是不要迷失了方向和用途......。
上面显示的 "效果 "证明了MQL-machine首先通过EX4文件查找声明的变量,并创建它们,而不管逻辑分支是否完整。一方面,它不节省内存,另一方面,你可以创建类似的结构,尽管在我看来这种风格不是最好的选择。
整个问题是在缺乏{},不是吗?非常感谢!
整个问题是在变量的声明 中。
int a;
我声明它,然后在需要的地方和时候使用它,而你却重复声明一个变量--很可能编译器没有跳过它。
如果你在循环中只有一条语句,那么你就不需要{},但如果你有更多的语句,那么你就必须放上{},否则你会发现为什么循环的计算不正确
SZZY:如果你刚刚开始,请在for后面加上大括号,你以后会明白的。
循环必须始终被执行。
循环与它有什么关系?这只是一个例子,在一个不知道会被使用的块中创建的变量仍然在 "播放",并且在整个start() 方法中都是可见的和可用的,不需要重新初始化它,更不需要在重复使用前去初始化它。