Batch-script-classic-loop-implementationn

提供:Dev Guides
移動先:案内検索

Classic for Loopの実装

以下は、ほとんどのプログラミング言語で利用できる古典的な「for」ステートメントです。

構文

for(variable declaration;expression;Increment) {
   statement #1
   statement #2
   …
}

バッチスクリプト言語には、上記の構文に似た直接の「for」ステートメントはありませんが、ifステートメントとラベルを使用して、古典的な「for」ループステートメントの実装を実行できます。

以下は、古典的な「for」ループ文の一般的な流れです。

ループ実装のクラシック

バッチスクリプトの古典的なforループの一般的な構文実装を見てみましょう。

Set counter
:label

If (expression) exit loop
Do_something
Increment counter
Go back to :label
  • 「for」実装のコード全体がラベル内に配置されます。
  • カウンター変数は、「for」ループの実装を開始する前に設定または初期化する必要があります。
  • 「for」ループの式は、「if」ステートメントを使用して行われます。 式が真であると評価された場合、ループから抜け出すために出口が実行されます。
  • 式の評価が偽の場合に「for」の実装を続行できるように、カウンターは「if」ステートメント内で適切にインクリメントする必要があります。
  • 最後に、ラベルに戻り、「if」ステートメントを再度評価できるようにします。

以下は、古典的な「for」ループ文の実装を実行する方法の例です。

@echo off
SET/A i = 1
:loop

IF %i%==5 GOTO END
echo The value of i is %i%
SET/a i=%i%+1
GOTO :LOOP
:END

出力

上記のコマンドは、次の出力を生成します。

The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4