for ループ
更新 : 2007 年 11 月
for ステートメントは、カウンタ変数、評価する条件、およびカウンタを更新する処理を指定します。ループが反復処理される前に、条件が評価されます。評価が成功した場合は、ループ内のコードが実行されます。評価が成功しなかった場合、ループ内のコードは実行されず、ループ後の 1 行目のコードの処理が続けられます。カウンタ変数は、ループの実行後、次の反復処理が開始される前に更新されます。
for ループの使用
ループの条件が満たされない場合、ループは一度も実行されません。条件が常に満たされると、無限ループになります。場合によっては、ループが実行されない方が望ましいこともありますが、無限ループが望ましい場合はほとんどありません。したがって、ループ条件を記述するときには注意が必要です。次の例では、for ループを使用して、配列の要素を 1 つ前の要素までの合計値で初期化しています。
var sum = new Array(10); // Creates an array with 10 elements
sum[0] = 0; // Define the first element of the array.
var iCount;
// Counts from 0 through one less than the array length.
for(iCount = 0; iCount < sum.length; iCount++) {
// Skip the assignment if iCount is 0, which avoids
// the error of reading the -1 element of the array.
if(iCount!=0)
// Add the iCount to the previous array element,
// and assign to the current array element.
sum[iCount] = sum[iCount-1] + iCount;
// Print the current array element.
print(iCount + ": " + sum[iCount]);
}
このプログラムの出力は次のようになります。
0: 0
1: 1
2: 3
3: 6
4: 10
5: 15
6: 21
7: 28
8: 36
9: 45
次の例には、2 つのループがあります。最初のループのコード ブロックは実行されません。2 番目のループは無限ループになります。
var iCount;
var sum = 0;
for(iCount = 0; iCount > 10; iCount++) {
// The code in this block is never executed, since iCount is
// initially less than 10, but the condition checks if iCount
// is greater than 10.
sum += iCount;
}
// This is an infinite loop, since iCount is always greater than 0.
for(iCount = 0; iCount >= 0; iCount++) {
sum += iCount;
}