条件分岐する
条件分岐するには if 文を用います。PowerShell における条件判断の演算子はこのようになります。
-eq | equal | C# の場合 == |
-ne | not equal | C# の場合 != |
-lt | less than | C# の場合 < |
-le | less than equal | C# の場合 <= |
-gt | greater than | C# の場合 > |
-ge | greater than equal | C# の場合 >= |
サンプルソースとして、円の周長、または、円の面積を計算するスクリプトを作成しました。
最初に半径をユーザ入力し、そのあとに、周長を計算するか、面積を計算するか、キー入力で判断します。
c の場合は周長を計算します。
a の場合は面積を計算します。
c または a 以外のキー入力をするとエラー表示します。
# Math で定義されている定数 PI を参照する.
$pai = [math]::PI
# 半径をたずねる.
$buf = Read-Host "raduis ?"
$r = [double]$buf
# 周長を計算するか、面積を計算するかたずねる.
$key = Read-Host "(c)ircumference or (a)rea ?"
# キー入力文字列を必ず小文字にする.
$key = $key.ToLower()
# 先頭の一文字しか評価しない.
$c = $key[0]
# 先頭の一文字を使ってif条件分岐する.
if ( $c -eq "c" )
{
# 円の周長を計算する.
$ans = 2.0 * $pai * $r
$str_out = "circumference is {0}" -f $ans
}
elseif ( $c -eq "a" )
{
# 円の面積を計算する.
$ans = $pai * $r * $r
$str_out = "area is {0}" -f $ans
}
else
{
# キー入力が c でも a でもないので計算しない.
$str_out = "Error: invalid key input."
}
# コンソール出力する.
Write-Host( $str_out )
下記が実行結果です。
円周長さ circumference を求めるために c をキー入力したとき.
raduis ?: 1.0
(c)ircumference or (a)rea ?: c
circumference is 6.28318530717959
円面積 area を求めるために a をキー入力したとき.
raduis ?: 1.0
(c)ircumference or (a)rea ?: a
area is 3.14159265358979
a でも c でもないキー入力をしたとき.
raduis ?: 1.0
(c)ircumference or (a)rea ?: q
Error: invalid key input.