PowerShell: 演算子の優先順位

PowerShellで利用する演算子の優先順位について説明します。

例えば「*(乗算)」と「+(加算)」の演算子が同時に使われている場合、 「2 + 3 * 4」の結果は「*(乗算)」が優先されるため「14」となります。 優先順位を知らないと思わぬバグの原因になるため把握しておくことが必要です。

優先順位については次のような特徴があります。

  • 優先順位の高い方から先に演算される
  • 優先順位を変更する場合は()カッコを使う
  • 優先順位が同じ場合は先にある方が優先される
  • 大まかには算術演算子 > 比較演算子 > 代入演算子の順

以下は演算子の優先順位リストです。 上にある演算子ほど優先度が高くなっています。

++ --
! -not
-(単項演算子)
* / %
+ -
-eq -ne -gt -gt -lt -le
-like -notlike
-match -notmatch
-replace
-and -or -xor
= += -= *= /= %=

優先順位を変更する方法

演算子の優先順位を変更する場合は優先したい演算を()カッコで括ります。

例えば「1 + 2 * 3」は通常なら「*」「+」の順番で演算されますが、 「(1 + 2) * 3」と記述することで「+」「*」の順番で演算されます。

Write-Host (1 + 2 * 3)   # 7

Write-Host ((1 + 2) * 3) # 9
PowerShell