<?xml version="1.0" encoding="Shift_JIS" ?>
<doc>
<title>for ステートメント</title>

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