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