VBScript ループ: Do While、Do until、while、For Each (例)

⚡ スマートサマリー

VBScript ループでは、Do While、Do Until、While Wend、For Next、For Step、For Each といった構文を使用してアクションを繰り返す方法を、構文、終了条件、例を交えて解説します。

  • 🔁 実行条件: 条件が真である間ループします。
  • 実行期限: 条件が真になるまでループします。
  • 🪟 ウェンドの間: 終了オプションのない従来のループ。
  • 🔢 次回のご案内: カウンターベースのループ(オプションでステップ機能付き)。
  • 📦 次の項目ごとに: 配列、辞書、またはコレクションを反復処理します。
  • 🤖 AIヘルパー: AIがVBScriptのループを生成し、終了条件を説明する。

VBScriptループ

VBScript でループが使用されるのはなぜですか?

ループは、同じコードブロックを繰り返し実行するために使用されます。VBScriptには多くのループがあります。ping ステートメント。VBScript のいくつかのルックping ステートメントは、Do While、Do Until、For…Nextなどです。では、どのルックを選択するかをどのように決定しますか?ping あなたのニーズに合ったステートメントはどれですか?

ループを実行する際、一連の命令を何回実行したいかを知っている場合と知らない場合があります。たとえば、2つの数値の合計を10回計算したいとします。この場合、コードブロックを10回繰り返す必要があることは既にわかっています。一方、特定の変数が真になるまで2つの数値の合計を計算したいとします。この場合、ループを何回実行する必要があるかはわかりません。したがって、実行回数がわかっているかわからないかに応じて、さまざまな種類のループを使用できます。ping ステートメント。

次のトイレへ…ping ステートメントは、コードブロックを有限回繰り返したい場合、つまりコードブロックを繰り返したい回数がわかっている場合に使用されます。

Do While と Do Until looping ステートメントは、条件が真または偽になるまでコードブロックを繰り返したい場合、つまりコードブロックを何回実行したいかがわからない場合に使用されます。

これらのトイレを見てみましょうping 発言を一つずつ。

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>

コードを実行してみると、次のような出力が得られます。

VBScript Do While ループ

ブロックは 1,2,3 回実行され (x=4、5、1、XNUMX の場合)、x の値が XNUMX になったときにループが終了します。ステートメント x=x+XNUMX を忘れると、ループは終わりのないものになります。 XNUMXつ。 この種のループは次のように呼ばれます。 無限ループ無限ループはシステムをクラッシュさせる可能性さえあります。そのため、Do Whileループを使用する際は、ping ステートメントでは、ルックを作成するコードがあることを確認する必要がありますping ある時点で条件が真となる。

最初に変数 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>

コードを実行すると、出力は次のようになります。

VBScript の Do until ループ

ここでは、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のWhileループ

VBScript の For-Next ループ

For-Next ループを使用すると、コードのブロックを特定の回数実行できます。 「VBScript For ループ」は、カウンター変数とその開始値と終了値を指定します。 Next ステートメントは、カウンター変数を XNUMX つ増やします。

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

コードを実行すると、次のような出力が得られます。

VBScript の For-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>

このコードの出力は次のようになります。

VBScript の For-Step-Next ループ

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-Step-Next ループ

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>

上記で指定したコードの出力は次のようになります。

VBScript の For-Each-Next ループ

Code 例:

<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 という名前を入力します。

VBScript の For-Each-Next ループ

「OK」をクリックすると、出力は次のようになります。

VBScript の For-Each-Next ループ

よくあるご質問

Do While は True の間実行されます。Do Until は False の間実行されます。

はい。AIはVBScriptをPowerShellに変換します。 Pythonまたは Java脚本。

AIは不足している増分を検出し、Exit Doステートメントを提案します。

Exit Do または Exit For を使用してください。Wend には Exit オプションはありません。

はい、しかしDo WhileはExit Doをサポートしているため、そちらの方が好ましいです。

For Each key In dict.Keys then access dict.Item(key).

Microsoft 非推奨になりました。PowerShell を使用するか、 Python 新作のために。

i = 1 から 10 までステップ 2。負のステップは高い値から低い値へと移動します。