- Euphoria Tutorial
- Euphoria - Home
- Euphoria - Overview
- Euphoria - Environment
- Euphoria - Basic Syntax
- Euphoria - Variables
- Euphoria - Constants
- Euphoria - Data Types
- Euphoria - Operators
- Euphoria - Branching
- Euphoria - Loop Types
- Euphoria - Flow Control
- Euphoria - Short Circuit
- Euphoria - Sequences
- Euphoria - Date & Time
- Euphoria - Procedures
- Euphoria - Functions
- Euphoria - Files I/O
- Euphoria Useful Resources
- Euphoria - Quick Guide
- Euphoria - Library Routines
- Euphoria - Useful Resources
- Euphoria - Discussion
Euphoria - 循环直到语句
Loop ...until循环与 while 循环类似,不同之处在于,loop...until 循环保证至少执行一次。
句法
循环...until 的语法如下 -
loop do -- Statements to be executed. until expression
请注意,表达式出现在循环的末尾,因此循环中的语句在测试表达式的值之前执行一次。
如果表达式返回 true,则控制流程跳回到 do,循环中的语句再次执行。重复此过程直到表达式为假。
例子
#!/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
循环....带有入口语句
通常情况下,循环的第一次迭代有些特殊。在循环开始之前必须完成一些事情。它们在开始循环的语句之前完成。
with条目语句很好地达到了目的。您需要将此语句与循环...直到一起使用,并在您希望第一次迭代开始的位置添加入口关键字。
句法
带条目的循环...直到循环的语法如下 -
loop with entry do -- Statements to be executed. entry -- Initialisation statements. until 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
循环....标签语句
循环...直到循环可以在第一个do关键字之前有一个标签子句。您可以在 Enter子句之前或之后保留标签子句。
该标签仅用于命名循环块,标签名称必须是具有单个或多个单词的双引号常量字符串。label 关键字区分大小写,应写为label。
句法
带标签子句的循环...直到的语法如下 -
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