目次→
演算子→
反復演算子→
Operator For (iteration)←オリジナル・サイト
ユーザ定義型の変数で、
For...Next ループで使う演算子を、宣言、または定義します。
構文:
用法:
For iterator [ As typename ] = start_value To end_value
[ Step step_value ]
[ ...statements... ]
Next
パラメタ:
(引数を含む)
typename
stp,
step_value
増分の値として使用される typename オブジェクト
iterator
反復子 (繰返子:くりかえし) として使用される typename オブジェクト
end_value
繰返しを終える値として使用される typename オブジェクト
start_value
typename オブジェクトで、反復子の初期値に、構造物をコピーするか、割り当てるために使われます。
記述:
演算子 For,
演算子 Next,
演算子 Step は、ユーザ定義型の定義で、ユーザ定義型のオブジェクトを、
For...Next ループの反復子と増分値として使用できるようにするために、多重定義することができます。
すべての非静的メンバー手続きとして、これらは、3つの演算子のコード本体の、反復子オブジェクトへの参照によってアクセスできる、非表示の
this パラメーターを渡しました。
演算子 For は、反復子オブジェクトに、コピーの構築またはの割り当て後に一度呼び出され、オブジェクトが、ループの準備に必要な追加の初期化を行えるようにします。
For...Next 命令文で、ステップ値が指定されていない場合は、上段の構文の
演算子 For が使われます。
ステップ値が指定されている場合は、下段の構文が使われ、結果として起こる追加の初期化で使うため、ステップ値が渡されます。
高度な使用法
上の説明は、3つの引数
start_value,
end_value,
step_value は
反復子 と同じ型でなければならない(これは明白な使用法です)ことを暗示しているようですが、完全に真実とはかぎりません:
-
start_value, end_value, step_value 引数は、任意の型にすることができます(それらの間で異なる型で、反復子 の 1つと異なる型も可能です)。
-
唯一の制約は、反復子 は、start_value 引数から構築(ローカル 反復子 の場合)するか割り当てる(グローバル 反復子 の場合)ことです。(反復子 は暗黙的に構築または内部で割り当てられるためです。)
-
同様に、他のパラメーター end_value と step_value は、反復子 と同じ型のオブジェクトに変換できる必要があります。
例:
方言差:
参照: