WHILE操作符的奇怪行为 - 页 4 1234 新评论 Ian Venner 2014.04.16 14:01 #31 lord_hiro: 就这样吧! 我很惭愧... :-) 此外,这不是我第一次使用WHILE,但我开始反向思考,从未走出自己的循环:-/。 所以deVries的建议是用&&代替||,结果是正确的。 从这个话题中,我们还发现了很多其他需要注意的地方,比如说,IF( == )的工作原理。 谢谢你们的耐心和花时间让我明白。 我们都做过类似的事情,笑一笑。 是的,你可以像deVries说的那样做,或者你可以在画完对象后加一个break来跳出while循环。 不过,如果你使用break,你可以使代码更有效一点,因为不需要第一个while条件。 也正如GumRai所说,调用EMPTY_VALUE 比调用iHigh()是一个更好的比较值。 extern int SwingBarCount=100; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int start() { int SwingHighShift=0; string StringHighStatus="False"; int SwingHigh=0; while(SwingHighShift<=SwingBarCount) { if(iFractals(NULL,0,MODE_UPPER,SwingHighShift)!=EMPTY_VALUE && iFractals(NULL,0,MODE_UPPER,SwingHighShift)>Close[0]) { StringHighStatus="True"; SwingHigh=SwingHighShift; ObjectDelete("SwingHigh"); ObjectCreate("SwingHigh",OBJ_VLINE,0,Time[SwingHigh],0); ObjectSet("SwingHigh",OBJPROP_COLOR,Red); break; } else SwingHighShift++; } return(0); } 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
就这样吧!
我很惭愧... :-)
此外,这不是我第一次使用WHILE,但我开始反向思考,从未走出自己的循环:-/。
所以deVries的建议是用&&代替||,结果是正确的。
从这个话题中,我们还发现了很多其他需要注意的地方,比如说,IF( == )的工作原理。
谢谢你们的耐心和花时间让我明白。
我们都做过类似的事情,笑一笑。
是的,你可以像deVries说的那样做,或者你可以在画完对象后加一个break来跳出while循环。
不过,如果你使用break,你可以使代码更有效一点,因为不需要第一个while条件。
也正如GumRai所说,调用EMPTY_VALUE 比调用iHigh()是一个更好的比较值。