请大家帮我看看,代码如下,我是代码小白,一个很简单的逻辑,用if..else if..else 三个分支控制。但是结果却不是对的。这一点我真的不明白了,根据官方条件控制语句分支的描述,
我的代码如下:
Params
//此处添加参数
Vars
//此处添加变量
Numeric a;
Numeric b;
Defs
//此处添加公式函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
a = -5;
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
if(a > 0)
b = 1;
else if(a < 0)
b = -1;
else
b = 0;
Commentary("b = " + text(b));
}
我的理解Commentary出b的结果应该等于-1。但事实情况却是0,
花括号呢,可以打开看一下系统策略是怎么用ifelse的
是不是因为a变量没有全局化引起的?
就是这个原因。
局部变量的意思就是只在局部域内有效,一般这个域指的是{},跨域不传递内容。
就是这个原因。
局部变量的意思就是只在局部域内有效,一般这个域指的是{},跨域不传递内容。