PowerShellのcontinue
ステートメントは、ループ処理の中で使用されます。
continue
を実行すると、その時点のループの残りの処理をスキップし、次のループの反復に進みます。
これは、特定の条件を満たす場合に処理をスキップしたいときに便利です。
たとえば、特定の値や状態を除外する場合などに役立ちます。
基本的な構文
continue
continue
は、単独で使用します。条件分岐の中で使用されることが一般的です。
使用例
基本例
以下の例では、1
から10
までの数値の中で、奇数をスキップして偶数のみを表示します。
for ($i = 1; $i -le 10; $i++) {
if ($i % 2 -ne 0) {
continue
}
Write-Output $i
}
実行結果
2
4
6
8
10
このスクリプトでは、数値が奇数の場合にcontinue
でその後の処理をスキップし、次のループ反復に進みます。
ネストしたループでの使用
continue
は外側のループには影響を与えず、現在のループのみを制御します。
以下の例では、内側のループで条件を満たす場合に処理をスキップします。
for ($i = 1; $i -le 3; $i++) {
for ($j = 1; $j -le 3; $j++) {
if ($j -eq 2) {
continue
}
Write-Output "i=$i, j=$j"
}
}
実行結果
i=1, j=1
i=1, j=3
i=2, j=1
i=2, j=3
i=3, j=1
i=3, j=3
このスクリプトでは、内側のループで$j -eq 2
のときにcontinue
が実行され、残りの処理がスキップされます。
実用的な例
ファイル処理の例
指定したフォルダ内のファイルを処理する際に、一部のファイルをスキップする場合に使用できます。
$files = Get-ChildItem -Path "C:\Temp" -File
foreach ($file in $files) {
if ($file.Extension -eq ".tmp") {
continue
}
Write-Output "Processing file: $($file.Name)"
}
実行結果
Processing file: example1.txt
Processing file: example2.docx
このスクリプトでは、.tmp
拡張子のファイルをスキップして他のファイルのみを処理します。
注意点
- 無限ループに注意
continue
を使用しても、条件によってループが正しく終了するように設計する必要があります。そうしないと無限ループに陥る可能性があります。
- 意図的なスキップの設計
continue
を使用することで、スクリプトの読みやすさやメンテナンス性が低下する場合があります。条件分岐を整理して、必要最小限の使用にとどめることが重要です。
まとめ
PowerShellのcontinue
ステートメントは、ループ内で特定の条件を満たす場合に処理をスキップして次の反復に進むための便利なツールです。簡単な例から複雑なスクリプトまで幅広く活用できます。
適切に使用することで、スクリプトの効率性と柔軟性を向上させることができます。