# for ステートメント

`for` ステートメントは、`while` ステートメントに似ていますが、より複雑なものです。
構文は以下の通りです。
`for(第１節;第２節;第３節) ステートメントまたはブロック`
ここで、第１節には、ループに入る前に実行したい式を指定します。ここには変数宣言を行うこともできて、ここで宣言した変数は、ループの間中有効なものとされます ( ループを抜けると削除されます )。省略することもできます。
第２節には条件式を指定します。この条件式が `true` の間、ステートメントまたはブロックが繰り返し実行されます。省略すると、常に真であると見なされます。
第３節には、ステートメントまたはブロックの最後で実行したい式を指定します。省略することもできます。
動作としては、
(1) まず、第１節を実行する
(2) 第２節を評価し、偽ならばステートメントまたはブロックは評価されずに終わる
(3) ステートメントまたはブロックを実行する
(4) 第３節を実行する
(5) 第２節を評価し、偽ならばループを抜ける
(6) (3) から繰り返す
ブロック中に `break` ステートメントがあった場合は、その時点でループから抜けます。`continue` ステートメントがあった場合は、(4) に飛びます。
`例:
var i,a=1;
for(i=1;i<5;i++)
{
a*=i;
}
var i;
for(i=0;i<10;i++)
{
if(obj[i]==0) continue; // continue しても i++ が実行される
if(obj[i]==1) break; // break するとその場で抜ける
func(obj[i]);
}
`