Euphoria-while-statement

提供:Dev Guides
移動先:案内検索

幸福感-whileステートメント

whileループは、特定の回数だけタスクを繰り返すことができる制御構造です。

構文

whileループの構文は次のとおりです-

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

実行時に、_expression_の結果が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ループの構文は次のとおりです-

while expression with entry do
   -- Statements executed if expression returns true
entry
   -- Initialisation statements.
end while

_expression、_を実行する前に、初期化ステートメントを実行し、通常の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 と記述する必要があります。

構文

ラベル句を持つ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