返回列表 发帖

While 循环(Crystal 语法)

While 循环可用于执行固定的语句块,并且可以无限次地执行。

两种类型的 While 循环
循环的类型

解释

示例

While ...Do

While ...Do 循环对条件求值,如果条件为 true,则对 Do 后面的表达式求值。

完成对表达式的求值后,再次对该条件求值,如果条件为 true,则再次对 Do 后面的表达式求值。

它不断重复该过程,直到条件为 false 时为止。

While condition Do

   expression

Do ...While

Do ...While 循环对任何表达式求值一次。

然后对条件求值,如果条件为 true,则再次对表达式求值。该过程持续进行,直到条件为 false 时为止。

Do

   expression

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

返回列表