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