MasteringVFP/2/4/2

出自VFP Wiki

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

目錄

DO WHILE ... ENDDO 命令

用途

在一個條件循環裏執行一組命令。

語法

DO WHILE lExpression
 Commands
 [LOOP]
 [EXIT]
ENDDO

參數

lExpression

  • 指定一個邏輯運算式,它的值決定是否執行 DO WHILE 和 ENDDO 之間的命令敘述。如果 lExpression 計算為「真」(.T.),就執行命令敘述。

Commands

  • 指定當 lExpression 計算為「真」(.T.)時,要執行的 Visual !FoxPro 命令敘述。

LOOP

  • 將控制權直接傳給 DO WHILE 子句,不再執行 LOOP 與 ENDDO 之間的敘述。LOOP 可以放在 DO WHILE 與 ENDDO 之間的任何位置。

EXIT

  • 在 DO WHILE 循環中,將控制權迅速移轉給緊接在 ENDDO 的下一個命令。EXIT 可以放在 DO WHILE 與 ENDDO 之間的任何位置。

附註

  • 只要邏輯運算式 lExpression 為「真」(.T.),就執行位於 DO WHILE 和 ENDDO 之間的命令敘述。每個 DO WHILE 敘述必須有一個相對應的 ENDDO 敘述。
  • 可在 DO WHILE 和 END CASE 同一列之後放置註釋,在編譯和執行過程中,這些註釋會被忽略。

範例

在下面的範例中,DO WHILE 循環統計倉庫中價格高於 20 美元的產品數量,遇到檔案結束符號 (EOF) 時,退出 DO WHILE 循環並顯示總數。

CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE products && 開啟 Products 資料表格 SET TALK OFF gnStockTot = 0

DO WHILE .T. && 開始循環  IF EOF()   EXIT  ENDIF  IF unit_price < 20   SKIP   LOOP  ENDIF  gnStockTot = gnStockTot + in_stock  SKIP ENDDO   && 結束循環

CLEAR ? '庫存中的總項價值超過 20 美元:' ?? gnStockTot