Script

PowerShell - ラベル付けを活用した処理方法 [サンプル] [プログラミング]

2022年6月16日

自分
閲覧ありがとうございます。ゆっくり よんでいってください

本記事に記載の内容は、
「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の使用率は高くないと思うので
こんなことできるんだな~程度に参考にして頂ければ嬉しいですっ。

-Script