While関数の使用
反復処理のもう1つの方法は、While関数を使用することです。この関数は、テストと本体の2つの引数のみを取ります。そのため、いずれかの引数でカウンタ、インデックス、またはフラグ変数を使用する場合は、While関数を呼び出す前にそれらを初期化する必要があります。JMPは最初の引数を評価し、それをブール値の結果として解釈して、反復処理を続行するかどうかを決定します。結果が真の場合、While関数は反復処理を続行します。偽の場合、While関数は反復処理を終了し、スクリプトはWhile関数に続くコードに進みます。JMPは次に2番目の引数を評価します。このコードは通常、反復処理の本体と見なされ、JMPはこのコードを毎回評価します。個別の更新引数がないため、このコードの一部は、次の反復処理のためにカウンタ、インデックス、またはフラグ変数を更新する必要があります。例を見てみましょう。このコードでは、cはカウンタまたはインデックスで、初期値はtrueに設定されています。Not Doneはフラグ変数で、初期値はtrueに設定されています。したがって、While関数では、JMPはまずnot Doneを評価し、それをブール値の結果として解釈します。not Doneが真の場合、関数は続行されます。次に、本体に反復処理の主な処理(Distributionプラットフォームの起動)が組み込まれ、ブール比較に基づいてnot Done変数が更新されます。ここに示すコードでは、JMPはデータテーブル内の列数とカウンタの現在の値を比較し、カウンタを更新します。比較の結果、データテーブルにさらに列がある場合はaが返され、すべての列が評価された場合は0が返されます。この結果はnot Doneに格納され、次の反復処理の開始時に評価されます。Post Increment演算子は、増分前に現在の値を返すことに注意してください。つまり、コードの最後の部分を「N Col greater than c, semicolon, c plus-plus」と記述しても、まったく同じ動作になります。