Batch-script-while-statement-implementation

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

whileステートメントの実装

Batch Scriptで直接使用できるwhileステートメントはありませんが、ifステートメントとラベルを使用してこのループの実装を非常に簡単に行うことができます。

次の図は、このループの説明図を示しています。

ステートメントの実装中

while実装の最初の部分は、「if」条件の評価を制御するために使用されるカウンターを設定することです。 次に、whileループ実装のコード全体を具体化するために使用されるラベルを定義します。 「if」条件は式を評価します。 式の評価がtrueの場合、コードブロックが実行されます。 条件がfalseと評価された場合、ループは終了します。 コードブロックが実行されると、ラベルステートメントに戻り、再び実行されます。

以下は、whileステートメントの一般的な実装の構文です。

構文

Set counters
:label
If (expression) (
   Do_something
   Increment counter
   Go back to :label
)
  • while実装のコード全体がラベル内に配置されます。
  • whileループの実装を開始する前に、カウンター変数を設定または初期化する必要があります。
  • while条件の式は、「if」ステートメントを使用して行われます。 式の評価がtrueの場合、「if」ループ内の関連コードが実行されます。
  • while実装が特定の時点で終了できるように、カウンターは「if」ステートメント内で適切にインクリメントする必要があります。
  • 最後に、ラベルに戻り、「if」ステートメントを再度評価できるようにします。

以下は、whileループステートメントの例です。

@echo off
SET/A "index = 1"
SET/A "count = 5"
:while
if %index% leq %count% (
   echo The value of index is %index%
   SET/A "index = index + 1"
   goto :while
)

上記の例では、最初にインデックス整数変数の値を1に初期化しています。 「if」ループの条件は、式の条件がcount変数の値よりも小さい場合にそのインデックスになるように評価することです。 indexの値が5未満になるまで、indexの値を出力してから、indexの値を増やします。

出力

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

The value of index is 1
The value of index is 2
The value of index is 3
The value of index is 4
The value of index is 5