Euphoria - while 语句



while 循环是一种控制结构,允许您重复执行某个任务一定次数。

语法

while 循环的语法如下:

while expression do
   -- Statements executed if expression returns true
end while

执行时,如果表达式结果为真,则执行循环内的操作。只要表达式的结果为真,就继续执行。

while 循环的关键点是,循环可能根本不会运行。当表达式被测试且结果为假时,循环体将被跳过,并执行 while 循环后的第一条语句。

示例

#!/home/euphoria-4.0b2/bin/eui

integer a = 10

while a < 20 do
   printf(1, "value of a : %d\n", a)
   a = a + 1
end while

这将产生以下结果:

value of a : 10
value of a : 11
value of a : 12
value of a : 13
value of a : 14
value of a : 15
value of a : 16
value of a : 17
value of a : 18
value of a : 19

while....with entry 语句

循环的第一次迭代通常会有所不同。在循环开始之前需要做一些事情。它们在启动循环的语句之前完成。

with entry 语句很好地满足了这个目的。您需要将此语句与 while 循环一起使用,只需在您希望第一次迭代开始的地方添加entry关键字。

语法

带有 entry 的 while 循环的语法如下:

while expression with entry do
   -- Statements executed if expression returns true
entry
   -- Initialisation statements.
end while

在执行表达式之前,它会执行初始化语句,然后像普通的 while 循环一样开始。之后,这些初始化语句成为循环体的一部分。

示例

#!/home/euphoria-4.0b2/bin/eui

integer a = 10

while a < 20 with entry do
   printf(1, "value of a : %d\n", a)
   a = a + 1
entry
   a = a + 2
end while

这将产生以下结果:

value of a : 12
value of a : 15
value of a : 18

while....label 语句

while 循环可以在第一个do关键字之前添加label子句。您可以在enter子句之前或之后添加label子句。

while 循环标签用于命名循环块,标签名称必须是包含单个或多个单词的双引号常量字符串。label 关键字区分大小写,应写为label

语法

带有 label 子句的 while 循环的语法如下:

while expression label "Label Name" do
   -- Statements executed if expression returns true
end while

当您使用嵌套 while 循环时,标签非常有用。您可以使用带有标签名称的continueexit循环控制语句来控制循环的流程。

示例

#!/home/euphoria-4.0b2/bin/eui

integer a = 10
integer b = 20

while a < 20 label "OUTER" do
   printf(1, "value of a : %d\n", a)
   a = a + 1
   
   while b < 30 label "INNER" do
      printf(1, "value of b : %d\n", b)
      b = b + 1
      
      if b > 25 then
         continue "OUTER"  -- go to start of OUTER loop
      end if
   end while
end while

这将产生以下结果:

value of a : 10
value of b : 20
value of b : 21
value of b : 22
value of b : 23
value of b : 24
value of b : 25
value of a : 11
value of b : 26
value of a : 12
value of b : 27
value of a : 13
value of b : 28
value of a : 14
value of b : 29
value of a : 15
value of a : 16
value of a : 17
value of a : 18
value of a : 19
euphoria_loop_types.htm
广告