while迴圈控制結構,可重複任務一定次數。
語法:
while迴圈的語法是:
while expression do -- Statements executed if expression returns true end while |
在執行時,如果運算式expression 的結果為true,則迴圈內的行動將被執行。這將繼續只要運算式的結果是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迴圈 with entry 的語法是:
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迴圈可以有一個label 子句之前首先 do 關鍵字。進入子句之前或之後,可以保持標籤子句。
while迴圈標籤只是用來迴圈命名塊和標籤名稱必須用雙引號字串常量有單個或多個字。標籤關鍵字是區分大小寫的,應該寫成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 |
上一篇:
Euphoria 迴圈類型
下一篇:
Euphoria loop until 語法