SEブログ

【PowerShell】比較演算子を元に条件式(IF文)を使ってみる

 

こんにちは!

 

 

前回は比較演算子の記事を書いてみましたが、それらを使って条件式を書いてみました。

処理を分岐する事ができますので、パターンA の場合、パターンB の場合、パターンB の場合などで処理を分ける事ができるようになります。

 

また、比較演算子についての記事は以下にリンクを貼っておきましたので必要であれば参考いただくと幸いです。

 

【PowerShell】色々な比較演算子を使ってみる

 

 

では早速、進めましょう。

 

 

If – Else の構文

 

 

入力内容によって、条件文の結果が True か或いは False のどちらかで処理されます。

 

 

If (条件文) {

    True の処理内容を書く

} else {

    False の処理内容を書く

}

 

 

では早速、比較演算子を使って書いてみましょう。

 

If (10 -eq 10) {

    Write-Host "True"

} else {

    Write-Host "False"

}

True ← True が返ってきました。

 

 

次に、Read-Host を使って、番号を入力し、その値が $num1 が $num2 と等しいか、返り値を True か False かで処理内容を書いてみます。

 

[int]$num1 = Read-Host "番号を入力してください。"
[int]$num2 = Read-Host "番号を入力してください。"

If ($num1 -eq $num2) {

    "$num1 を入力しました。" ← True の処理内容を記述

} else {

    "$num1 と $num2 を入力しましたが、異なる値です。" ← False の処理内容を記述

}

## 実行結果
# True の場合
番号を入力してください。: 10 ← 入力($num1)
番号を入力してください。: 10 ← 入力($num2)
10 を入力しました。 ← 結果

# False の場合
番号を入力してください。: 10 ← 入力($num1)
番号を入力してください。: 20 ← 入力($num2)
10 と 20 を入力しましたが、異なる値です。 ← 結果

 

 

上と大きく変わりませんが、Read-Host を使って番号を入力し、その値が 100 より小さければ True 、そうでなければ False を返しますが、処理内容を Write-Output を使い表示します。

 


[int]$num = Read-Host "番号を入力してください。"
if (-not($num -le 100)) {

    Write-Output "入力した番号 $num は 100 より大きい値です。"

} else {

    Write-Output "入力した番号 $num は 100 より小さい値です。"

}

## 実行結果
# True の場合

番号を入力してください。: 1000
入力した番号 1000 は 100 より大きい値です。


# False の場合

番号を入力してください。: 10
入力した番号 10 は 100 より小さい値です。

 

 

今度は、複数の比較演算子を使って条件文を書いてみます。

入力した番号が 100 より大きく、1000 より少ないかどうか比較します。

 

 

[int]$num = Read-Host "番号を入力してください。"

if (($num -gt 100) -and ($num -lt 1000)) {

    Write-Output "入力した $num は 100 より大きく、1000 より少ないです。"

} else {

    Write-Output "入力した番号は 100 ~ 1000 以外の範囲です。"

}


## 実行結果
# True の場合

番号を入力してください。: 500
入力した 500 は 100 より大きく、1000 より少ないです。


# False の場合

番号を入力してください。: 1
入力した番号は 100 ~ 1000 以外の範囲です。

 

 

それでは、If で複数の条件を書いてみます。

内容としては、入力した番号が 10 か 100 か 1000 かのいずれかに該当したら「同じ値です」と返し、該当しなければ該当しない文字を返します。

ここでは、以下の番号の順で処理が進みます。

 

 

  1. 最初に 10  と同じ値であれば処理を返す。
  2. 異なれば 100 と同じ値であれば処理を返す。
  3. 異なれば 1000 と同じ値であれば処理を返す。
  4. 異なれば、どれも該当しないという流れで処理で進みます。

 

 

 

[int]$num = Read-Host "番号を入力してください。"

if ($num -eq 10) {

    "入力した $num は 10 と同じ値です。"

} elseif ($num -eq 100) {

    "入力した $num は 100 と同じ値です。"

} elseif ($num -eq 1000) {

    "入力した $num は 1000 と同じ値です。"

} else {

    "入力した $num は、10 でも 100 でも 1000 でもありません。"

}

## 実行結果 
# True の場合

番号を入力してください。: 1000
入力した 1000 は 1000 と同じ値です。


# False の場合

番号を入力してください。: 1
入力した 1 は、10 でも 100 でも 1000 でもありません。

 

 

以上になります。

 

いかがでしょうか。比較演算子と条件文を理解する事によって、このような形で処理を分岐させる事ができます。

また、条件に合わせて処理をまとめる事ができます。

 

では最後までお読みいただきありがとうございました!