MasteringVFP/2/4/2

出自VFP Wiki

在2005年4月3日 (日) 08:09由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