Euphoria - while 语句
while 循环是一种控制结构,允许您重复任务一定次数。
语法
while循环的语法如下 −
while expression do -- Statements executed if expression returns true end while
执行时,如果表达式结果为true,则执行循环内的操作。 只要表达式结果为真,这种情况就会继续。
while循环的关键点是,循环可能永远不会运行。 当测试表达式且结果为 false 时,将跳过循环体并执行 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 关键字。
语法
带条目的 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 子句之前或之后保留标签子句。
while 循环标签仅用于命名循环块,标签名称必须是具有单个或多个单词的双引号常量字符串。 label 关键字区分大小写,应写为 label。
语法
带有标签子句的 while 循环的语法如下 −
while expression label "Label Name" do -- Statements executed if expression returns true end while
当您使用嵌套 while 循环时,标签非常有用。 您可以使用带有标签名称的continue或exit循环控制语句来控制循环流程。
示例
#!/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