迴圈內相同條件AND兩邊對調結果不同

  •   107 
  • 最後發表   哩厚  2023 十一月 30
哩厚 發文於   2023/11/27

想請教為何在相同條件下,只有and兩邊順序顛倒,value2和value3的結果卻不相同

程式碼如下:

settotalBar(50);

 

Input: day1(1, "排除近N日");

Input: day2(10, " N日最大量");

Input: test(9, "大量位置");

 

if islastBar then begin

For value99 = 0 to highestBar(v[DAY1],DAY2)+1

Begin

//測試value2

if value99 = highestBar(v[DAY1],DAY2)+1 and value99 = test

then value2 = 999;

//測試value3

if value99 = test and value99 = highestBar(v[DAY1],DAY2)+1

then value3 = 999;

End;

 

if highestBar(v[DAY1],DAY2)+1 = test then ret = 1;

end;

 

outputField1(highestBar(v[DAY1],DAY2)+DAY1,"大量位置");

outputField2(value2,"value2");

outputField3(value3,"value3");

 

XQ小幫手 發文於   2023/11/30

 Hello 哩厚,

 

highest / highestbar 是用節省效能的方式撰寫,所以將其使用在迴圈中會計算出錯。

建議您可以改為 simplehighestbar 就可以得到正確的計算和結果。

發表回覆
Close