分かりやすく、使いやすく。

ループを途中で抜ける方法

スポンサーリンク

Powershell でループを中断するには break を使用します。

  1. While ループから抜けるサンプル
  2. For ループから抜けるサンプル
  3. 二重ループの場合


While ループから抜けるサンプル

以下のサンプルでは変数 $cnt の値が 5 を超えると While ループを途中で終了します。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
$cnt = 1
 
While($true){
 
  if($cnt -gt 5){
    # break でループを終了します。
    break
  }
  
  Write-Host $cnt
  $cnt ++
} 

上記サンプルコードの実行結果は次の通りです。

1
2
3
4
5 

For ループから抜けるサンプル

以下のサンプルでは変数 $cnt の値が 5 を超えると For ループを途中で終了します。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
$cnt = 1
 
for($i = 0; $i -lt 10000; $i++){
  
  if($cnt -gt 5){
    # break でループを終了します。
    break
  }
  
  Write-Host $cnt
  $cnt ++
} 

上記サンプルコードの実行結果は次の通りです。

1
2
3
4
5 

二重ループの場合

複数のループがネストとしている場合、 break を実行すると break が直接含まれるループのみ終了します。二重ループで break した場合のサンプルコードは次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$cnt_loop1 = 1
$cnt_loop2 = 1
 
# =============== ループ1 開始 ===============
While($true){
  
  if($cnt_loop1 -gt 3){
    # ループ1(外側のループ)を終了
    break
  }
  
  # ------------------ ループ2 開始------------------
  While($true){
    if($cnt_loop2 -gt 3){
      # ループ2(内側のループ)を終了
      break
    }
    
    Write-Host ('ループ2(内側のループ):' + $cnt_loop2)
    $cnt_loop2 ++
  }
  # ------------------ ループ2 終了------------------
  
  Write-Host ('ループ1(外側のループ):' + $cnt_loop1)
  $cnt_loop1 ++
}
# =============== ループ1 終了 =============== 

上記サンプルコードの実行結果は次の通りです。

ループ2(内側のループ):1
ループ2(内側のループ):2
ループ2(内側のループ):3
ループ1(外側のループ):1
ループ1(外側のループ):2
ループ1(外側のループ):3 
スポンサーリンク