VBScript ループ: Do While、Do until、while、For Each (例)
VBScript でループが使用されるのはなぜですか?
ループは、同じコード ブロックを繰り返し実行するために使用されます。 VBScript にはループするステートメントが多数あります。 VBScript のループ ステートメントには、Do While、Do until、For…..Next などがあります。 では、必要に応じてどのループ ステートメントを使用するかをどのように決定すればよいでしょうか?
ループを実行する際、一連の命令を実行する回数を意識するかもしれませんし、意識しないかもしれません。たとえば、10 つの数値の合計を XNUMX 回計算するとします。この場合、コード ブロックを XNUMX 回繰り返す必要があることは既にわかっています。特定の変数が true になるまで XNUMX つの数値の合計を計算するとします。この場合、ループを何回実行するかはわかりません。したがって、実行回数がわかっているかどうかに基づいて、さまざまな種類のループ ステートメントを使用できます。
For…Next ループ ステートメントは、コード ブロックを有限回繰り返す場合、つまりコード ブロックを繰り返す回数がわかっている場合に使用されます。
Do While および Do until ループ ステートメントは、条件が true または false になるまでコード ブロックを繰り返す場合、つまりコード ブロックを実行する回数がわからない場合に使用します。
これらのループするステートメントを XNUMX つずつ見てみましょう。
VBScript Do While ループ
コードのブロックを実行する必要がある回数がわからない場合は、Do While ループを使用することになります。 たとえば、変数 x の値が 5 未満の間、「ようこそ」というメッセージを出力したい場合、Do While ループが使用されます。
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
コードを実行してみると、次のような出力が得られます。
ブロックは 1,2,3 回実行され (x=4、5、1、XNUMX の場合)、x の値が XNUMX になったときにループが終了します。ステートメント x=x+XNUMX を忘れると、ループは終わりのないものになります。 XNUMXつ。 この種のループは次のように呼ばれます。 無限ループ。 無限ループによりシステムがクラッシュする可能性もあります。 したがって、Do While ループ ステートメントを使用するときは、ある時点でループ条件を true にするコードが存在することを確認する必要があります。
最初に変数 x に値 7 を代入すると、コード ブロックは一度も実行されません。 条件に関係なく、コードのブロックを少なくとも XNUMX 回実行したい場合は、Do While ループを使用できます。 コードを次のように変更します。
VBScript の例:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
このコードを実行すると、「ようこそ」というメッセージが XNUMX 回だけ表示されます。 ここでは、ループを XNUMX 回実行した後でのみ条件がチェックされます。
VBScript の Do until ループ
「Do until」ループは、コードのブロックを実行する必要がある回数がわからない場合にも使用されます。 Do until ループ (Do While x<5) の最初のコード ブロックは、以下のコード ブロックと同等です。
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
これにより、Do While ループのコードの最初のブロックと同じ出力が得られます。 ウェルカム メッセージが XNUMX 回表示されます。 Do…..Loop While と同様に、Do…Loop until も行う必要があります。
Do While または Do until ループを途中で終了したい場合は、Exit Do ステートメントを使用できます。 上記のプログラムで x の値が 3 になったときにブロックを終了したいとすると、次のようにコーディングする必要があります。
<script type="text/vbscript"> Dim x x=1 Do Until x=5 If x=3 Then Exit Do document.write("Welcome.") x=x+1 Loop </script>
コードを実行すると、出力は次のようになります。
ここでは、x の値が 3 になるとループが終了します。
VBScriptのWhileループ
While…Wend ループは Do While ループに似ていますが、一般的には使用されません。 Do While は While.....Wend ループよりも構造化されているため、プログラマは通常 Do While ステートメントを使用します。
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
出力は次のようになります
VBScript の For-Next ループ
For-Next ループを使用すると、コードのブロックを特定の回数実行できます。 「VBScript For ループ」は、カウンター変数とその開始値と終了値を指定します。 Next ステートメントは、カウンター変数を XNUMX つ増やします。
For i = 1 To 5 document.write("The number is " & i & " ") Next
コードを実行すると、次のような出力が得られます。
VBScript の For-Step-Next ループ
デフォルトでは、カウンター変数は 2 ずつ増加します。 指定した値によってカウンター変数を増減したい場合は、For….Step….Next ループを使用できます。 上記のコードで、カウンターを XNUMX ずつインクリメントし、コードを次のように変更するとします。
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
このコードの出力は次のようになります。
For Next ループまたは For Step Next ループを中間で終了する場合は、ステートメントに対して Exit を使用できます。 上記のプログラムで i の値が 3 になったときにブロックを終了したいとすると、次のようにコーディングする必要があります。
<script type="text/vbscript"> For i = 1 To 5 Step 2 If i=3 Then Exit For document.write("The number is " & i & "<br />") Next </script>
出力は次のようになります。
VBScript の For-Each-Next ループ
コレクション内の項目ごと、または VBS 配列の要素ごとにコード ブロックを繰り返す場合は、For…Each…Next ループを使用する必要があります。
<script type="text/vbscript"> Dim students(4) students(0)="John" students(1)="Hanah" students(2)="Sarah" students(3)="Kevin" students(4)="Emma" For Each x In students document.write(x & "<br />") Next </script>
上記で指定したコードの出力は次のようになります。
コードの例
<html> <head> <script type="text/vbscript"> Dim name, length name = InputBox("Enter your name") length = Len(name)’Gives length of the input string For i = 1 To length txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then counter = counter+1 End If Next document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.") </script> </head> <body> </body> </html>
ファイルを loop.html として任意の場所に保存します。次に、Internet Explorer でファイルを開くと、名前を入力するボックスが表示されます。次のように、たとえば Aaron という名前を入力します。
「OK」をクリックすると、出力は次のようになります。
製品概要
- ループ ステートメントは、同じコード ブロックを繰り返し実行するために使用されます。
- ブロックが何回実行されるかが事前にわからない場合は、Do-while、Do-Until、および While-Wend ループを使用します。
- コード ブロックを実行する必要がある回数がすでにわかっている場合は、For-Next、For-Next-Step、For-Each-Next ループを使用します。