PowerShell for文 処理を繰り返すサンプル

PowerShellのfor文で処理を繰り返すサンプルです。

目次

サンプル for文とは / for文のサンプル / for文で配列の値を取得
ループを抜ける(break) / 2重ループでbreakを使用
ループの先頭に戻る(continue) / 2重ループでcontinueを使用
foreach文で配列の値を取得

for文とは

for(初期化式 ; 条件式 ; 増減式){
    実行される処理
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。繰り返しはループとも呼ばれます。
  • 初期化式は、最初に1回だけ実行されます。
  • 使用する変数をカウンター変数またはループ変数といいます。変数名はiやjがよく使用されます。
  • 条件式がtrueの間、処理を繰り返します。
  • 増減式でカウンター変数/ループ変数の値が変わります。
  • 条件式がfalseになるとループ処理を終了します。

for文のサンプル

for ($i = 0; $i -lt 3; $i++) {
  Write-Host $i # 0 1 2が出力される
}

1行目は、初期化式($i = 0)によりiは0から始まります。
増減式($i++)によりiの値は、1ずつ増えていきます。
条件式($i -lt 3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。

for文で配列の値を取得

$arr = "赤", "黄", "青" # 配列

for ($i = 0; $i -lt $arr.Length; $i++) {
  Write-Host $arr[$i] # 赤 黄 青が出力される
}

3行目のLengthは、配列の長さを返します。
4行目は、変数と添字で配列の値を表示しています。配列の添字は0から始まります。

ループを抜ける(break)

for ($i = 0; $i -lt 3; $i++) {
  if ($i -eq 1) {
    break
  }
  Write-Host ("i =" + $i) # i=0が出力される
}

3行目のbreakでfor文を抜けます。
5行目は、i=0が出力されます。

2重ループでbreakを使用

内側のfor文を抜けます。

for ($i = 0; $i -lt 2; $i++) {
  for ($j = 0; $j -lt 2; $j++) {
    if ($j -eq 0) {
      break
    }
    Write-Host ("j =" + $j) # 出力なし
  }
  Write-Host ("i =" + $i) # i=0 i=1が出力される
}

1,2行目にfor文があり2重ループ(入れ子)になっています。
4行目のbreakは、内側のfor文のみ抜けます。

ループの先頭に戻る(continue)

for ($i = 0; $i -lt 2; $i++) {
  if ($j -eq 0) {
    continue
  }
  Write-Host ("i =" + $i) # i=0 i=2が出力される
}

3行目のcontinueでループ処理の先頭の6行目に戻ります。
5行目は、i=0 i=2が出力されます。

2重ループでcontinueを使用

内側のfor文の先頭に戻ります。

for ($i = 0; $i -lt 2; $i++) {
  for ($j = 0; $j -lt 2; $j++) {
    if ($j -eq 0) {
      continue
    }
    Write-Host ("j =" + $j) # j=1 j=1が出力される
  }
  Write-Host ("i =" + $i) # i=0 i=1が出力される
}

1,2行目にfor文があり2重ループ(入れ子)になっています。
4行目のcontinueは、内側のfor文の先頭の2行目に戻ります。

foreach文で配列の値を取得

foreach(型 変数1 in 変数2){
  繰り返される箇所(変数1を使用)
}
  • 上記for文との違いは、変数の値を加算する処理がありません。
  • 配列やリストの要素を順番にアクセスします。
$arr = "赤", "黄", "青" # 配列

foreach ($str in $arr) {
  Write-Host $str
}

1行目は、配列です。
3行目は、foreach文で配列の全ての要素にアクセスします。

関連の記事

PowerShell ISE ファイルでHello World
PowerShell if文のサンプル

△上に戻る