aspでforサイクルの使い方


ループとは、指定された場合に、ステートメントのセットを繰り返し実行することです。最もよく使われている(for…next、do…loop)、
1、繰り返し実行する語句を循環文といいます。循環文は、(1)条件が偽でない前に、ステートメントを繰り返し実行する3つのタイプに分けられます。2)条件が本物になる前に実行文を繰り返します。3)ステートメントを指定の回数で繰り返します。
2、For...Nextループは繰り返し動作する回数が固定されたら、For...Nextループを使うのは良い選択です。また、文法が似ているFor Each...Nextサイクルを紹介します。配列または集合の繰り返しサイクルに適用します。循環の最初の実行に入ると、循環変数は最初の値からステップの積算を開始し、終値以上になるまでの時間がかかります。例えば、初値は1で、最終値は10で、ステップサイズは2で、循環変数の値はそれぞれ1、3、5、7、9で、6回目は循環変数の疲れで11に加えて、すでに10を超えて、循環変数の値はもう実行しません。
3、For...Nextループの文法は以下の通りです。For循環変数=初期値To終値Stepステップ文...[Exit For]プログラム文...Next説明:(1)、循環変数:この変数は通常整数を使用しますが、必要な場合は他の数値タイプでもいいです。彼は数値変数です。2)、初値:これは循環変数の初期値で、数値タイプです。その値は必ずしも整数ではなく、或いは小数ではなく、VBは自動的に彼に整数(3)、終値を取ってくれます。循環変数の終値は数値タイプです。その値は必ずしも整数ではなく、または小数ではなく、VBは自動的に彼に整数(4)、ステップサイズを取ってくれます。循環変数の毎回の増加量は、ステップサイズの数値タイプは循環変数と同じであるべきです。その値はプラス(増加サイクル)またはマイナス(減少サイクル)であり、0ではなく、特に指定されていない場合、ステップサイズはデフォルトで1です。5)、循環体:For文とNext文の間のステートメントは、一つ以上のステートメントであっても良いです。(6)、Next:循環端末ステートメントであり、Nextの後の「循環変数」とFor文の「循環変数」は同じでなければなりません。for i=0 to 10 Step 1         ...... 次のテキスト
実行プロセス:(1)、初値1を循環変数i(2)に割り当て、iの値を終値10と比較し、i>10なら循環し、(5)を実行し、循環体を実行します。(3)、iはステップ値を増加します。すなわちi=i+1(4)、戻り(2)は継続します。(5)、次のステートメントの後のコードを実行します。
このサイクルの役割は、FOR文の初値、終値、ステップサイズに基づいて循環回数を決定し、循環体内の各ステートメントを繰り返し実行することです。For...Next循環体は「先に確認し、後に実行する」という原則に従って、つまり循環変数が終値を超えているかどうかを確認してから循環体を実行するかを決定します。したがって、以下の場合、循環体は実行されなくなります。(1)、ステップサイズの正の数が終値より大きい場合(2)、ステップサイズの負の値が終値より小さい場合、初期値が終値に等しい場合、ステップサイズが正数であるかそれとも負の数であるかに関わらず、1回のループを実行します。
サイクル数Nの一般的な公式はN=Int(終値−初値)/ステップ長)+1である。
For...Nextサイクル中の初値が終値より小さい場合、歩幅は正の値でなければなりません。小さいから大きいまでのカウントを表します。初期値が終値より大きい場合、ステップ長は負の値に設定され、大きいから小さいまでカウントされます。
例えば、初値が終値以下の場合

<%
for i=0 to 10 Step 1          ' 1
Response.Write(i&"<br>")
Next
%>
例えば、初値が終値より大きい場合

<%
for i=10 to 1 Step -1
Response.Write(i&"<br>")
Next
%>
ステップサイズが0より大きい場合:初期値<=終値の場合、For...Next間のステートメントは一回実行されます。次に循環変数はステップサイズが加算されます。まだ終値以下の場合はFor...Next間のステートメントを実行して、循環変数の累積値が終値より大きいまでFor...Nextサイクルをスキップします。

<%
for i=1 to 1 Step 0.5
Response.Write(i&"<br>")
Next
%>
ステップサイズが0以下の場合:初期値>=終値の場合は、ループ内のステートメントが一回実行され、循環変数からステップサイズ(負の)が減算されます。循環変数がまだ>=終値の場合は、サイクル内のステートメントがもう一回実行されます。サイクル変数が終値以下になるまで、For...Nextループからジャンプします。循環文の実行プロセス:

<%
for i=2 to 1 Step -1
Response.Write(i&"<br>")
Next
%>
4、循環文の実行プロセス:(1)For文でループに入ります。循環変数の初値、終値、ステップサイズが算術式の場合、まず算術式の値を計算し、循環変数に初値を付与し、終値、ステップの値をメモリ(2)に保存し、循環変数の値を終値と比較します。循環変数の値が終値の範囲を超えていない場合は、順次、循環体内の各語句を実行します。循環変数の値が終値の範囲を超えると、ループを終了し、NEXTの後継文を実行します。3)循環体の各語句を実行した後にNEXT文に出会い、循環変数を一つのステップの値を増加させ、終値に行って比較し、weiを超えない場合は、再度循環体内の各語句を実行し、循環変数の値が終値の範囲を超えるまで繰り返し実行し、このサイクルを終了し、Nextの後継文を実行します。
授業の例題:
【例1】単純1を10に加え、循環特性を1回に1を加える

<%
for i=0 to 10
sum=sum+i
Next
Response.Write(sum)
%>
最終表示結果:55
【例2】

<%
for i=0 to 10 step 2
Response.Write(i&"<br>")
Next
%>
最終表示結果:0,2.4,6,8,10
【例3】

<%
for i=0 to 10
Response.Write(i&"<br>")
   if i=5 then
   exit for'
   end if
Next
%>
上記の手順では、iは1から10まで加算して10回実行しますが、iが5まで加算された場合はi=5の判定式に該当し、結果はExit For文を実行してサイクルから外れてしまいますので、最終ページに表示された結果は「0,1,2,3,4,5」です。
【例4】

<%
for i=10 to 0 step -1
sum=sum+i
Next
Response.Write(sum)
%>
最終表示結果:55
5、For...Nextサイクルの違いを例で説明します。
【例1】

<% For i=1 To 10
Response.write i&","
Next
%>
前の列のプログラムはIを積算して、循環の中のiは1、2、3からできて、毎回1を積算して、10まで、全部で10回実行して、最後のページは“1、2、3、4、5、6、7、8、9、10”を表示します。
【例2】

<%
For a=1 To 10 Step 0.5
Response.write a&","
Next
%>
上記の手順でaは毎回0.5を積算して、全部で20回実行します。最後にホームページに「1、1.5、2、2.5、3、3.5…9.5」と表示されます。
【例3】

<%
For j=10 To 1 Step -1
Response.write j&","
Next
%>
上記のプログラムでjは10から1まで、毎回1を減らし、最後にホームページで「10、9、8、7、6、5、4、3、2、1」と表示されます。

<%
StepNum=1
EndNum=1
For i=1 To endNum Step stepNum
Response.write i&","
StepNum=StepNum-0.1
EndNum=EndNum+1
Next
%>
上記の手順では、わざと循環内でステップを0.1ずつ減らして、終値を毎回1ずつ加えて、iは永遠に終値に達しないようにしていますが、ステップと終値は一回しか読み取らないので、このプログラムの出力結果はまだ「1」です。
【例5】
循環中の循環変数は、循環中に変更されます。

<%
For k=1 To 10
Response.Write k&","
Next
%>
前の列のプログラムはkを積算して、循環の中のkは1、2、3からできて、毎回1を積算して、10まで、全部で10回実行して、最後のページは現れます。
「1,2,3,4,5,6,7,8,9,10」を示します。