第四章 Caché 命令大全 CONTINUE 命令 第四章 Caché CONTINUE 命令 重點 大綱 描述 參數 示例

第四章 Caché CONTINUE 命令

跳出本次循環ForWhileDo While命令並重新執行循環。

重點

  1. CONTINUE 命令 只在塊級語法有效。

大綱

CONTINUE:pc

參數

  • pc 可選,後置表達式

描述

CONTINUE命令在FORWHILEDO WHILE命令之後的代碼塊內使用。 繼續使執行跳回FORWHILEDO WHILE命令。FORWHILEDO WHILE命令測試條件,並基於該測試重新執行代碼塊循環。因此,CONTINUE命令對執行的影響與到達代碼塊的右大括號(})完全相同。

Continue不接受任何參數(後置條件除外)。必須至少用兩個空格將其與同一行上緊隨其後的命令隔開。

CONTINUE可能導致執行跳出TRYCATCH塊以返回其控制流語句。

參數

pc

可使命令具有條件的可選後置條件表達式。如果後置條件表達式爲TRUE(計算結果爲非零數值),則Caché執行CONTINUE命令。如果後置條件表達式爲假(計算結果爲零),則Caché不執行該命令。

示例

下面的示例將CONTINUE與後置條件表達式一起使用。它遍歷並打印出從1到10的所有數字,3除外:

/// d ##class(PHA.TEST.Command).TestContine()
ClassMethod TestContine()
{
    FOR i=1:1:10 {
        IF i # 2 { 
            CONTINUE:i=3
            WRITE !,i," 是奇數" 
        }
        ELSE { 
            WRITE !,i," 是偶數" 
        }
    }
    WRITE !,"結束循環"
    QUIT
}
DHC-APP>d ##class(PHA.TEST.Command).TestContine()
 
1 是奇數
2 是偶數
4 是偶數
5 是奇數
6 是偶數
7 是奇數
8 是偶數
9 是奇數
10 是偶數
結束循環

下面的示例顯示兩個嵌套的for循環。Continue跳回到內部循環中的for

/// d ##class(PHA.TEST.Command).TestContineFor()
ClassMethod TestContineFor()
{
    FOR i=1:1:3 {
        WRITE !,"外部循環: i=",i
        FOR j=2:2:10 {
            WRITE !,"內部循環: j=",j
            IF j '= 8 {
                CONTINUE  
            }
            ELSE { 
                WRITE !," 輸出8"
            }
        }
        WRITE !,"回到外部循環"
    }
    QUIT
}
DHC-APP>d ##class(PHA.TEST.Command).TestContineFor()
 
外部循環: i=1
內部循環: j=2
內部循環: j=4
內部循環: j=6
內部循環: j=8
 輸出8
內部循環: j=10
回到外部循環
外部循環: i=2
內部循環: j=2
內部循環: j=4
內部循環: j=6
內部循環: j=8
 輸出8
內部循環: j=10
回到外部循環
外部循環: i=3
內部循環: j=2
內部循環: j=4
內部循環: j=6
內部循環: j=8
 輸出8
內部循環: j=10
回到外部循環

以下示例顯示退出TRY塊的CONTINUECONTINUE跳回到TRY塊外部的FOR語句。

/// d ##class(PHA.TEST.Command).TestContineTry()
ClassMethod TestContineTry()
{
    FOR i=1:1:10 {
        WRITE !,"For循環的頂部"
        TRY {
            WRITE !,"在TRY塊中: i=",i
            IF i=7 {
                WRITE " 幸運7" 
            }
            ELSE { 
                CONTINUE 
            }
        }
        CATCH exp {
            WRITE !,"Catch塊異常處理程序",!
            WRITE "Error code=",exp.Code
            RETURN
        }
        WRITE !,"FOR循環的底部"
    }
    QUIT
}
DHC-APP>d ##class(PHA.TEST.Command).TestContineTry()
 
For循環的頂部
在TRY塊中: i=1
For循環的頂部
在TRY塊中: i=2
For循環的頂部
在TRY塊中: i=3
For循環的頂部
在TRY塊中: i=4
For循環的頂部
在TRY塊中: i=5
For循環的頂部
在TRY塊中: i=6
For循環的頂部
在TRY塊中: i=7 幸運7
FOR循環的底部
For循環的頂部
在TRY塊中: i=8
For循環的頂部
在TRY塊中: i=9
For循環的頂部
在TRY塊中: i=10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章