While 迴圈可用來無限制地執行陳述式的固定區塊。
迴圈類型 | 說明 | 範例 |
---|---|---|
While ...Do | While ...Do 迴圈負責驗算條件,如果條件為 True,則驗算 Do 後面的運算式。
驗算完成之後,它會再次驗算條件,如果條件為 True,便會再度驗算 Do 後面的運算式。 這個程序會繼續重複進行,直到條件為 False 時。 |
While condition Doexpression |
Do ...While | 不論什麼情況之下,Do ...While 迴圈都會驗算運算式一次。
然後它會驗算條件,假如條件為 True,便會再次驗算運算式。這個程序會繼續重複進行,直到條件為 False 時。 |
Doexpression While condition |
注意 While 迴圈可支援 Exit While 陳述式,立即從迴圈中退出。使用方法類似於 For 迴圈中的 Exit For。和 For 迴圈一樣,如果將 While 迴圈視為運算式,一定會傳回布林值 True。
While ...Do 迴圈範例
以下的範例會搜尋輸入字串中出現的第一個數字。假如找到數字,會傳回它在字串中的位置,否則會傳回 1。在此範例中,將輸入字串明確地設定為字串常數,但是也可以將它設定為等於字串型別資料庫欄位。
例如,輸入字串「The 7 Dwarves」時,公式會傳回 5,也就是數字 7 的位置。
Local StringVar inString := "The 7 Dwarves"; Local NumberVar strLen := Length (inString); Local NumberVar result := -1; Local NumberVar i := 1; While i <= strLen And result = -1 Do ( Local StringVar c := inString [i]; If NumericText (c) Then result := i; i := i + 1; ); result