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