請問如何縮減這段寫法

  •   133 
  • 最後發表   努力中  2024 三月 08
努力中 發文於   2024/03/07

var:A(0), B(0), C(0), con1(false), con2(false), con3(false), LONG(false);

A=open[10];  B=high[10];  C=low[10];

con1=A>close and A<100; 

con2=B>close and B<100; 

con3=C>close and C<100; 

LONG=con1 or con2 or con3;

因為實際con有30個,既然語法都一樣只是取值不同

想重複的部分都縮減成一段就好

請問可以指定一個變數=A or B or C 嗎?

根據我的理解不行,數列好像也不適合

系統好像也沒有適合的函數

邏輯打結 很困擾 請幫幫忙

謝謝

排序方式: 標準 | 最新
XS小編 發文於   2024/03/08

Hello 努力中,

 

在遇到有重複的程式碼的時候可以撰寫函數來達到縮減的效果,只是您的條件相對單純,所以效果有限。

舉例來說,您可以另一個布林值函數 _compare,內容為:

input: _val(numericSimple);

ret = _val > close and _val < 100;

 

接下來只要呼叫該函數並傳入要比較的值即可。

var:LONG(false);

array: Num[3](0);

Num[1] = open[10];  

Num[2] = high[10];  

Num[3] = low[10];

 

LONG = False;

for value1 = 1 to 3 begin

    if _compare(Num[value1]) then LONG = True;

    end;

 

如果要比較的條件多的話,這邊用陣列會比較快速簡潔。

努力中 發文於   2024/03/08

有幫助!!謝謝

補個相關說明連結

https://xshelp.xq.com.tw/XSHelp/?HelpName=Input&group=DECLARATION

發表回覆
Close