逻辑混乱?代码哪里出错了呢

OnBar(ArrayRef<Integer> indexs) { print("-----------"); for i = 0 to GetArraySize(mysymbol)-1 { data[i].condition2=CurrentBarIndex-timerecord1[i]>coolDownPeriod; if (data[i].condition2) { temp0=1; } Else { temp0=0; } if (data[i].condition2); { //print(DateTimeToString(date + time)+data[i].SymbolName+text(data[i].close)); timerecord1[i]=CurrentBarIndex; print("好运来"); print("data[i].condition2:"+text(temp0)); } } }这是怎么回事呢?运行机制我有理解的偏差吗?我前面订阅了100个股票,明明条件语句condition2是false,怎么if条件下面的代码还是执行了呢?求解答!请技术老师帮帮忙^_^

OnBar(ArrayRef<Integer> indexs) { print("-----------"); for i = 0 to GetArraySize(mysymbol)-1 { data[i].condition2=CurrentBarIndex-timerecord1[i]>coolDownPeriod; if (data[i].condition2) { temp0=1; if (data[i].condition2); { timerecord1[i]=CurrentBarIndex; print("好运来"); print("data[i].condition2:"+text(temp0)); } } Else { temp0=0; } if (data[i].condition2); { timerecord1[i]=CurrentBarIndex; print("逻辑错误"); print("data[i].condition2:"+text(temp0)); } } }这样写,会有如下输出:同一个data[i].condition2,顺序执行,前面为false后面为ture?

回复:if (data[i].condition2);好像这里多了个分号,是这个原因吗

回复:加了分号的意思就是该分支结构结束了,控制不了后面大括号的语句了

if (data[i].condition2) { temp0=1; if (data[i].condition2); { timerecord1[i]=CurrentBarIndex; print("好运来"); print("data[i].condition2:"+text(temp0)); } } Else { temp0=0; }我这样写,就没有输出,怎么回事?都是condition2?

回复:if这一行后面加了分号,这一行等于白写