- Euphoria 教程
- Euphoria - 首页
- Euphoria - 概述
- Euphoria - 环境
- Euphoria - 基本语法
- Euphoria - 变量
- Euphoria - 常量
- Euphoria - 数据类型
- Euphoria - 运算符
- Euphoria - 分支
- Euphoria - 循环类型
- Euphoria - 流程控制
- Euphoria - 短路
- Euphoria - 序列
- Euphoria - 日期和时间
- Euphoria - 过程
- Euphoria - 函数
- Euphoria - 文件 I/O
- Euphoria 有用资源
- Euphoria - 快速指南
- Euphoria - 库例程
- Euphoria - 有用资源
- Euphoria - 讨论
Euphoria - 直到循环语句
一个loop...until循环类似于while循环,但loop...until循环保证至少执行一次。
语法
loop...until的语法如下:
loop do -- Statements to be executed. until expression
请注意,表达式出现在循环的末尾,因此循环中的语句在表达式值被测试之前会执行一次。
如果表达式返回true,控制流将跳回到do,并且循环中的语句再次执行。此过程重复,直到表达式为false。
示例
#!/home/euphoria-4.0b2/bin/eui integer a = 10 loop do printf(1, "value of a : %d\n", a) a = a + 1 until a < 20
这将产生以下结果:
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
loop....with entry语句
通常情况下,循环的第一次迭代在某种程度上是特殊的。在循环开始之前必须做一些事情。它们在启动循环的语句之前完成。
with entry语句很好地满足了这个目的。您需要将此语句与loop...until一起使用,并在您希望第一次迭代开始的位置添加entry关键字。
语法
带entry的loop...until循环的语法如下:
loop with entry do -- Statements to be executed. entry -- Initialisation statements. until expression
在执行expression之前,它会执行初始化语句,然后像普通循环一样开始。之后,这些初始化语句成为循环体的一部分。
示例
#!/home/euphoria-4.0b2/bin/eui integer a = 10 loop with entry do printf(1, "value of a : %d\n", a) a = a + 1 entry a = a + 2 until a > 20
这将产生以下结果:
value of a : 12 value of a : 15 value of a : 18
loop....label语句
一个loop...until循环可以在第一个do关键字之前包含一个label子句。您可以在enter子句之前或之后保留label子句。
此标签仅用于命名循环块,标签名称必须是包含一个或多个单词的双引号常量字符串。label关键字区分大小写,应写为label。
语法
带label子句的loop...until循环的语法如下:
loop label "Label Name" do -- Statements to be executed. until expression
当您使用嵌套循环时,标签非常有用。您可以使用带标签名称的continue或exit循环控制语句来控制循环的流程。
示例
#!/home/euphoria-4.0b2/bin/eui integer a = 10 integer b = 20 loop label "OUTER" do printf(1, "value of a : %d\n", a) a = a + 1 loop 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 until b > 30 until a > 20
这将产生以下结果:
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解释器存在一些问题,并且它按预期工作,可能在Euphoria的未来版本中会修复。
euphoria_loop_types.htm
广告