- 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
廣告