本記事に記載の内容は、
「PowerShell - ラベル付けを活用した処理方法 [サンプル] [プログラミング]」に関する内容となっています。
以下記事で、繰り返し文やループ文を紹介しているので 気になる方は見てみてくださいっ 目次 本記事に記載の内容は、「PowerShell - 繰り返しや条件による処理 [サンプル] [プログラミング]」に関する内容となっています。 PowerShellを使うことで、毎日の処理や多大な処理を自 ... 続きを見る
PowerShell - 繰り返しや条件による処理 [サンプル] [プログラミング]
以下記事では、繰り返し文やループ文の強制終了方法を紹介しています。 本記事に記載の内容は、「PowerShell - 条件分岐やループ処理を強制終了 [サンプル] [プログラミング]」に関する内容となっています。 処理を自動化していく中で、〇〇に当てはまったら強制的に ... 続きを見る
PowerShell - 条件分岐やループ処理を強制終了 [サンプル] [プログラミング]
ラベル付け とは
プログラム の中で、特定の場所/文章(処理)を示すことが可能です。
識別子として、覚えるのが良いかもしれません。
ラベル付き プログラムの書き方
ラベル付き switch 文 をサンプルコードとして記載ます。
書き方としては、for 文でも 同様に記載することが可能ですよ。
command
:MYLABEL switch(変数){
値 {
switch(変数1){
値1 {break MYLABEL} #ここに当てはまると、MYLABELから抜けます
default {処理;break} #ここに当てはまると、現在処理中のswitch文から抜けます
}
}
default {処理;break}
}
ラベル付き break 文 の書き方
break 文にラベルを記載することで、
ラベルで表されているループ文から抜けることが可能になります。
ループ文を入れ子にして、複雑化している場合に利用すると便利です。
for 文での ラベル付きbreak 文記載方法
以下サンプルコードになります。
[値が4以上だったら、MYLABEL for から抜ける]動作をします。
command
$sum = 0
:MYLABEL for($i = 1; $i -le 10; $i++) {
for($j=1; $j -le 10; $j++){
$sum += $i * $j
if ($sum -ge 4) {
break MYLABEL
}
}
}
Write-Host $sum
switch 文での ラベル付きbreak 文記載方法
以下がサンプルコードになります。
[valが5で、val1が1の場合に MYLABEL switch から抜ける]動作をします。
command
$val = 5
$val1 = 1
$ret = ""
:MYLABEL switch($val){
10 {
switch($val1){
1 {$ret = "処理0";break MYLABEL}
2 {$ret = "処理1";break}
default {$ret = "処理2";break}
}
$ret="処理3"
break
}
20 {
$ret="処理4"
break
}
default {
$ret="処理5"
break
}
}
Write-Host $ret
ラベル付き continue 文の書き方
continue文にラベルを付けることで、任意の場所まで戻ることが可能になります。
for文を入れ子にして、ある一定の処理まで進んだら
ループ処理の一番上まで 戻る といったことが可能になります。
以下サンプルコードになります。
command
$sum = 0
:MYLABEL for($i = 1; $i -le 10; $i++) {
for($j=1; $j -le 10; $j++){
if ($i -eq 3) {
continue MYLABEL
}
$sum += $i * $j
}
}
Write-Host $sum
さいごに・・・
私自身が、悩まされたラベル付けに関して纏めました。
ラベル付け自体は、作成しているプログラム次第で多用することになるので
覚えておいて損はないです!
ただ・・・ラベル付けされたbreakやcontinueの使用率は高くないと思うので
こんなことできるんだな~程度に参考にして頂ければ嬉しいですっ。