HSQL程式教學(七)迴圈FOR...NEXT

※迴圈函數

迴圈在程式中一般用於循序處理特定之程序。

一、單一迴圈

語法:
For 變數V = 起始值 To 終止值 Step 步進值

 .....
 .....

Next

此時變數V會由起始值開始,以每次累加步進值的方式,跳動至終止值為止。

例:
10 Va = -10 
20 For Vb = 0 To 9 Step 1 
30  Vc = 前Vb_5分_MACD差柱( 10 , 10 , 20 ) 
40  If Vc > Va Then 
50   Va = Vc 
60  End If 
70 Next 

本例用於找出最近10根5分鐘線之MACD差柱之最大值,並且存於變數Va。


二、巢狀迴圈

語法:
For 變數V = 起始值 To 終止值 Step 步進值

 For 變數V = 起始值 To 終止值 Step 步進值
  .....
  .....

 Nex
Next

例:
10 載入陣列[ 5分_成交量 , 成交量 -> 陣列1 ] 
20 For Va = 241 To 249 Step 1 
30  Vb = Va + 1 
40  For Vc = Vb To 250 Step 1 
50   If 陣列1值( Va ) < 陣列1值( Vc ) Then 
60    Vd = 陣列1值( Va ) 
70    陣列單格填值( 陣列1 , #Va , 填入 Vc ) 
80    陣列單格填值( 陣列1 , #Vc , 填入 Vd ) 
90   End If 
100  Next 
110 Next 
120 Ve = 陣列1值( 242 )

範例說明:
本範例用於找出最近10根K線之第2大量,並且存於變數Ve。

行號10 將最近250根K線之成交量載入陣列1(每個陣列內定有250個儲存空間)。
行號60 ~ 80 將陣列1之第Va及第Vc位置之內容對調。

PS.此例僅為練習之用,HSQL有更簡捷的語法。


三、Exit For (跳出迴圈)

語法:
For 變數V = 起始值 To 終止值 Step 步進值

 .....
 Exit For
 .....

Next

在迴圈執行當中,若遇到Exit For指令,程式會立即執行跳出迴圈的動作,並且從Next指令後面接續執行。

例:
1 0 For Vb = 1 To 20 Step 1 
2 0  If 前Vb_5分_MACD交叉( 6 , 6 , 9 ) = 是 Then 
3 0   Exit For 
4 0  End If 
5 0 Next 
6 0 Vc = 前Vb_5分_成交量 

本範例用於找出前一次MACD交叉(參數為6,6,9)當時之成交量,並且存於變數Vc。

 

※補充說明:若為巢狀迴圈,則Exit For只會跳出當一迴圈。