MasteringVFP/2/4/4

出自VFP Wiki

在2005年1月9日 (日) 12:00由Elleryq (對話 | 貢獻)所做的修訂版本
(差異) ←上一修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳轉到: 導航, 搜尋

目錄

DO CASE ... ENDCASE 命令

用途

執行第一個條件運算式的值為真 (.T.) 之下的命令敘述。

語法

DO CASE
CASE lExpression1
[Commands]
[CASE lExpression2
[Commands]]
...
[CASE lExpressionN
[Commands]]
[OTHERWISE
[Commands]]
ENDCASE

參數

CASE lExpression1 Commands ...

  • 當遇到第一個結果為「真」的 CASE 運算式時,就執行位於它之下的命令敘述,一直到它再度遇到下一個 CASE 或 ENDCASE 為止。然後就從 ENDCASE 後面的第一個命令恢復程序的執行。
  • 如果一個 CASE 運算式為「假」(.F.),就忽略它與下一個 CASE 子句之間的命令敘述。
  • 此命令只能執行一組命令,這些命令是 CASE 運算式計算為「真」(.T.)的第一個命令集合,而其他計算為「真」(.T.) 的 CASE 運算式會被忽略。

OTHERWISE Commands

  • 如果所有的 CASE 運算式計算為「假」(.F.),就由 OTHERWISE 確定是否執行一組額外的命令。
    • 如果包含 OTHERWISE,就執行 OTHERWISE 之下的命令敘述,執行後跳到 ENDCASE 後的第一條命令執行。
    • 如果省略了 OTHERWISE,就跳到 ENDCASE 後面的第一條命令處執行。

附註

  • DO CASE 根據邏輯運算式的值執行一組 Visual !FoxPro 命令。當執行 DO CASE 時,先計算它後面的邏輯運算式,運算式的值決定了執行哪一組命令敘述。
  • 可在 DO CASE 和 END CASE 同一列之後放置註釋,在編譯和執行過程中,這些註釋會被忽略。

範例

在下面的範例中,Visual !FoxPro 計算每一個 CASE 子句,直到在列表中找到 MONTH 變數為止。在記憶體變數 rpt_title 中存入適當的字串,然後退出 DO CASE 結構。

STORE CMONTH(DATE()) TO month && 本日所在月份

DO CASE && 開始循環 CASE INLIST(month,'January','February','March')    STORE [第一季度收入] TO rpt_title CASE INLIST(month,'April','May','June')    STORE [第二季度收入] TO rpt_title CASE INLIST(month,'July','August','September')    STORE [第三季度收入] TO rpt_title OTHERWISE    STORE [第四季度收入] TO rpt_title ENDCASE && 結束循環 WAIT WINDOW rpt_title NOWAIT