[PowerShell] #06 - 計算と条件分岐

PowerShellでは計算や条件のチェックに演算子を利用します。


演算子というのは、足し算であれば「+」記号のようなもののことを言います。

様々な種類の演算子がありますが、主なものだけご紹介しておきます。

タブキーによる補完を行うときに候補が挙がってきますので、無理に覚えなくてもよいかと思います。


計算する

足す、引く、かける、割るといった所謂「四則演算」にはそれぞれ「+」「-」「*」「/」記号を利用します。

1 + 1
10 - 2
3 * 4

15 / 5

C#やJavaScriptなどのようなプログラミング言語では変数に対して足す、引くをしながら割り当てをするような演算子がありますが、PowerShellにも同じような仕組みがあります。

$a = 2
$a += 3
$a  # 5と表示

ただし、「++」といったような変数に1ずつ加算したり減算したりするような計算はできません。

また、割り算の余り(剰余)を計算するには「%」記号を利用します。

13 % 3  # 1と表示

一方で商を計算する演算子はありません(他のプログラミング言語にはあります)。

PowerShellで商を計算するには自前で計算しなければなりません。

(13 - (13 % 3)) / 3  # 13を3で割ったときの商、4と表示


比較する

比較するには比較演算子というものを利用します。

これはUnixのシェルに由来するものだと思われますが、算数的ではありません。

等しい

「一致している」「同じである」ことを比較するには「-eq」を利用します。

等しいを表す「equal」から来ています。

1 -eq 2  # false
2 -eq 2  # true

違う

逆に「一致していない」、「違う」ことを比較するには「-ne」を利用します。

等しくないを表す「not equal」から来ています。

1 -ne 2  # true
2 -ne 2  # false

大きい

2つの数値で一方が大きいことを比較するには「-gt」を利用します。より大きいを表す「greater than」から来ています。

1 -gt 2  # false
4 -gt 2  # true

小さい

2つの数値で一方が小さいことを比較するには「-lt」を利用します。より小さいを表す「less than」から来ています。

1 -lt 2  # true
4 -lt 2  # false

以上

2つの数値が同じか大きい、つまり以上であることを比較するには「-ge」を利用します。

greater equal」から来ています。

1 -ge 2  # false
2 -ge 2  # true
3 -ge 2  # true

以下

2つの数値が同じか小さい、つまり以下であることを比較するには「-le」を利用します。

less equal」から来ています。

1 -le 2 # true
2 -le 2 # false
3 -le 2 # false

条件で動きを変える(条件分岐)

条件によって動きを変えるには、if ~ elif ~ elseという構文を使います。

もし~ならば、もしくは~ならば、ちがえば、という感じです。

以下では変数nameの内容が「nalulabo」であれば「こんにちは」、内容が「なるーらぼ」であれば「日本語ですね」、どちらにも当てはまらなければ「ふーん」と出力するようになります。

if($name -eq "nalulabo"){
  "nalulabo"
} elif($name -eq "なるーらぼ"){

  "日本語ですね"

} else {

  "ふーん"

}

この条件の部分に比較演算子を使うことで動きを変えることができるわけです。

もしも2つ以上の条件に当てはまったときだけの動きをつくりたい場合は、論理演算子を利用します。

「~と~の両方」という場合は「-and」を、「~または~」という場合は「-or」というようになります。


どういったときに利用するのか

そんなこと言われても、どういうときに条件分岐させたらいいかピンとこない…

そういうこともあるでしょう。

では1つ例を挙げてみます。

例えば、時間によって表示するメッセージを変えたい!という場合です。

朝を7時から12時までとして、その間は「おはようございます」を返す、

昼を12時から19時までとして、その間は「こんにちは」を返す、

夜を19時から朝7時までとして、その間は「こんばんわ」を返す

というような場合です。

このときは現在の時刻を表すものと時間の部分を比較して3種類のメッセージを切り替えるようにすることで実現できますよね。


次回は繰り返しをお話ししたいと思います。

もんが(なるーらぼ)

個人でプログラミングの学習サイト「なるーらぼ」を運営しています。
https://nalu-labo.amebaownd.com
PowerShell入門の電子書籍2冊も出版しています。
http://www.amazon.co.jp/dp/B017LJOCJ2

なるーらぼ

ごく自然にプログラミングを楽しむことができる世界をつくるお手伝いをしています

0コメント

  • 1000 / 1000