- 精华
- 0
- 在线时间
- 280 小时
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
- 精华
- 0
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 主题
- 93
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
|
如FOR,WHILE,IF,ELSE中包含序列函数,导致条件不满足时,序列函数的赋值就没有被执行,缺省继承了上一个序列值即x=x[1]; 解决的方法是将序列函数放在FOR,WHILE,IF,ELSE之外赋值,而在FOR,WHILE,IF,ELSE语句内引用相关变量。如:
Vars
NumericSeries myBar;
Begin
If (myBar/2==IntPart(myBar/2))
{ myBar = CurrentBar;
// 其他语句
}
Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
End
在这个程序中,由于myBar = CurrentBar; 语句是偶数时被赋值,因此显示的是连续的偶数对。
把赋值语句放到IF语句之前之外,则能解决不能每个Bar都赋值的问题,如下:
Vars
NumericSeries myBar;
Begin
myBar = CurrentBar;
If (myBar/2==IntPart(myBar/2))
{
// 其他语句
}
Commentary ("myBay1 "+Text(myBar)+" "+Text(myBar[1])+" "+Text(myBar[2])+" "+Text(myBar[3])+" "+Text(myBar[4]));
Commentary ("Sum1: "+ Text(myBar+myBar[1]+myBar[2]+myBar[3]+myBar[4]));
End
|
-
总评分: 威望 + 25
查看全部评分
|