- UID
- 2
- 积分
- 2892817
- 威望
- 1396440 布
- 龙e币
- 1496377 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
【repeat-until loop循环语句】
for-to loop and down-to 重复的编程代码的循环周期的一个固定的量。只要表达式为真,while 循环就会继续。但都要求循环的表达式在执行循环代码之前至少为真一次。如果您总是想执行至少一个循环周期怎么办?
PowerLanguage 中的重复直到循环
该repeat-until循环重复,直到真/假表达式为真编程代码(亨利MultiCharts,2014)。repeat-until 循环具有以下默认模式(MultiCharts Support,personal communication,2014 年 10 月 16 日;TJ,2010 年):- repeat
- // Code to execute repeatedly
- // and that makes the 'trueFalseExpression'
- // true at some point.
- until trueFalseExpression = true;
复制代码 在第一个循环周期之后,评估真/假表达式。如果为假,则开始新的循环;如果为真,则循环停止。
经过底部测试的 PowerLanguage repeat-until 循环
repeat-until 循环是底部求值循环,就像 C#(参见 Dorman,2010)和 C++(参见 Lischner,2003)中的 do-while 循环一样。此类循环在执行循环内的代码后测试真/假表达式,因此无论真/假表达式如何,它们总是至少运行一次。
此功能的示例如下:- Variables:
- z(0);
- z = 10;
- repeat
- Print("z = ", z);
- z = z + 1;
- until z > 5;
复制代码 这个repeat-until 循环运行直到z大于5。但是当这个变量在第一个循环周期中的值为10 时,循环内的代码仍然被执行。这是因为在第一个循环周期后z > 5第一次测试表达式。
换句话说,PowerLanguage 不知道不应在第一个循环周期执行循环,因为这是在之后进行测试的。
重复直到循环编程错误
与while循环一样,程序员应该确保repeat-until循环在某个时刻退出以防止无限循环。向下循环和for-to 循环不太可能出现这种错误,因为它们会在每个循环周期后自动更改计数器变量(参见 MultiCharts Wiki,2012)。
如果真/假表达式永远不会变为真,则重复直到循环可以永远持续下去。在执行脚本之前,请仔细检查您的编程代码,尤其是当 repeat-until 循环具有复杂逻辑时。要修复无限循环错误,请参阅对无限 PowerLanguage 循环进行故障排除。
重复直到循环和开始和结束关键字
repeat-until 循环是唯一不需要beginandend关键字的PowerLanguage 循环。但是可以通过;在end和until(Henry MultiCharts, 2014)之间添加分号 ( )来选择添加它们,如下所示:- repeat begin
- // Code to execute repeatedly
- // and that makes the 'trueFalseExpression'
- // true at some point.
- end; until trueFalseExpression = true;
复制代码 为那个分号对我来说不合适并且可能会引起混淆,所以其他重复直到循环示例不使用beginandend关键字。
MultiCharts PowerLanguage 的 repeat-until 循环示例
一个基本的重复直到循环如下:- Variables:
- x(0);
- x = 0;
- repeat
- Print("x = ", x);
- x = x + 1;
- until x > 4;
复制代码- //> x = 0.00
- //> x = 1.00
- //> x = 2.00
- //> x = 3.00
- //> x = 4.00
复制代码 这个repeat-until循环输出x带有Print()关键字的值,然后在每个循环周期中将此变量增加1。循环继续直到 的值x大于 4。
概括
重复直到循环一直持续到它的真/假表达式为真。当此表达式永远不会变为真时,可能会触发无限循环。因为repeat-until 循环是底部测试循环,所以它总是至少执行一次。 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|