While 循环可用于执行固定的语句块,并且可以无限次地执行。
两种类型的 While 循环
循环的类型 | 解释 | 示例 |
---|---|---|
While ... Do | While ... Do 循环对条件求值,如果条件为 true,则对 Do 后面的表达式求值。 完成对表达式的求值后,再次对该条件求值,如果条件为 true,则再次对 Do 后面的表达式求值。 它不断重复该过程,直到条件为 false 时为止。 | While condition Doexpression |
Do ... While | Do ... While 循环对任何表达式求值一次。 然后对条件求值,如果条件为 true,则再次对表达式求值。该过程持续进行,直到条件为 false 时为止。 | DoexpressionWhile 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) Thenresult : = i;i : = i + 1 ;);result