Euphoria - while 語句



while 迴圈是一種控制結構,允許您重複執行某個任務一定次數。

語法

while 迴圈的語法如下:

while expression do
   -- Statements executed if expression returns true
end while

執行時,如果表示式結果為真,則執行迴圈內的操作。只要表示式的結果為真,就繼續執行。

while 迴圈的關鍵點是,迴圈可能根本不會執行。當表示式被測試且結果為假時,迴圈體將被跳過,並執行 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關鍵字。

語法

帶有 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子句之前或之後新增label子句。

while 迴圈標籤用於命名迴圈塊,標籤名稱必須是包含單個或多個單詞的雙引號常量字串。label 關鍵字區分大小寫,應寫為label

語法

帶有 label 子句的 while 迴圈的語法如下:

while expression label "Label Name" do
   -- Statements executed if expression returns true
end while

當您使用巢狀 while 迴圈時,標籤非常有用。您可以使用帶有標籤名稱的continueexit迴圈控制語句來控制迴圈的流程。

示例

#!/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_loop_types.htm
廣告
© . All rights reserved.