keepon文

回数によってループを制御するためのkeepon文について説明します。


目次:


書式

keepon

回数式

ループの手順

スコープ

予約変数

endkeepon

書式

keepon文は以下の形式です。


keepon ( 回数式 )

...

endkeepon


keepon文は回数式によって決定された回数のループを繰り返します。指定回数ループしたら実行制御がendkeeponの次の文に移動します。

実行制御がcontinue文かendkeeponに達した場合、ループインデックスを更新した後に実行制御がkeepon文の最初の文に移動します。

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

keepon

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

回数式

回数式はkeepon文のループ回数を決定するための式です。

回数式はintクラスを返す式であり、その値は1以上でなければなりません。


回数式がゼロ以下の場合はループが実行されません。

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


proxy pro = new proxy(10);

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

...

eko


proxyクラスの実体はintクラスでなければなりません。

ループの手順

♦1:keepon文の最初に回数式からループ回数が決定されてループインデックスがゼロに初期化されます。これは最初に一度だけ行われます。回数式がゼロ以下の場合はループ回数がゼロになります


♦2:回数の判定が行われます。ループインデックスとループ回数が等しければendkeeponの次の文に実行制御を移動します。


♦3:keepon文の文が実行されます。


♦4:continue文かendkeeponに達したらループインデックスを1加算します。


♦5:♦2に戻ります。

スコープ

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


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

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

予約変数

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

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


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

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

endkeepon

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

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

1:

class example

2:

open method void someMethod()

3:

message m; // dialog box.

4:

keepon (5)

5:

m.Show(__index); // 0, 1, 2, 3, 4

6:

endkeepon

7:

em

8:

ec

Copyright © Rice All rights reserved.