while 文

条件によってループを制御するためのwhile文について説明します。


目次:


書式

while

条件式

スコープ

予約変数

endwhile

書式

while文は以下の形式です。


while ( 条件式 )

...

endwhile


条件式が条件を満たせばwhile文内の文が先頭から実行されます。条件を満たさなければendwhileの次の文に実行制御が移動します。

実行制御がcontinue文かendwhileに達した場合、実行制御が条件式に移動して、条件式の評価からループを繰り返します。

実行制御がbreak文に到した場合、実行制御がendwhileの次の文に移動します。

while

while文である事を示すキーワードです。

条件式

条件式となれる式は以下の二つです。


boolクラスを返す式。

数値。int、long、realクラスを返す式。


boolクラスを返す場合、値がtrueならばループが実行されます。

数値を返す場合、値が非セロならばループが実行されます。


条件式はループ毎に再評価されます。したがって、while文のループの再開位置は条件式です。

条件式がproxyクラスを返す場合はproxyクラスの実体が自動的に使用されます。proxyクラスのEntityゲッターを呼び出したのと同じ結果になります。


proxy pro = new proxy(true);

while(pro) // pro.Entity is used.

...

endwhile


proxyクラスの実体はboolクラスか数値でなければなりません。

スコープ

while文はスコープを生成します。


スコープ内で宣言された変数はループ毎に再宣言されて新しいインスタンスが割り当てられます。

前のループの値を次のループに持ち越すことはありません。

予約変数

実行制御がwhile キーワードに到達するとスコープが生成され、予約変数__countと__indexが定義されます。

__countと__indexはintクラスの変数です。ゼロから始まるループ回数で初期化されます。

__countと__indexは通常のintクラスの変数のようにオーバーフローが発生することはありません。intクラスの最大値を超えた場合は自動的にゼロに戻ります。


while文の条件式の評価の際には既にスコープが生成されています。したがって、条件式の中に予約変数を使用した場合、その予約変数は現在のwhile文が定義したものになります。

while文の文はオプションです。while文内に任意の数だけ存在できます。

endwhile

while文の終了を示すキーワードです。

endwhileの代わりに省略形のewを使用できます。ewもキーワードであることに注意してください。

1:

class example

2:

open method void someMethod()

3:

while (true)

4:

if (__count > 10)

5:

break;

6:

endif

7:

endwhile

8:

em

9:

ec

Copyright © Rice All rights reserved.