演算子とは
演算子は、オペランド(数字等)に対してさまざまな種類の操作を行うために使用されます。
優先順位の異なる複数の演算子が存在する式で、どの演算子を先に実行するかは、その優先順位によって決定されます。例えば、「*」と「/」は同じ優先順位なので、「100 / 10 * 10」という式は、「(100 / 10) * 10」として動作する。
10 + 20 * 30 は、
○ 10 + (20 * 30) であり、 × (10 + 20) * 30 ではありません。
以下の表では、優先順位の高い演算子が表の上部に、優先順位の低い演算子が下部に表示されています。
演算子 | 内容 |
[ ] [ ]= | 要素参照、要素集合 |
** | 指数関数 |
!, ~, + | boolean NOT, ビット単位の補数, 単項プラス |
*, /, % | 乗算、除算、モジュロ(剰余) |
+, – | 加算(または連結),減算 |
< <, > > | ビット演算子シフト左(またはアペンド),ビット演算子シフト右 |
& | ビット演算子AND |
|, ^ | ビット演算子OR、ビット演算子XOR |
>, >=, <, <= | 順序形式を返す |
<=>, ==, ===, !=, =~, !~ | イコール、パターンマッチング、比較 |
&& | 条件がどちらも真の場合 |
|| | 少なくとも一つが真の場合 |
.., …= | レンジの作成とbooleanフリップフロップ |
?, : modifier-rescue | 条件付 例外処理モディファイア |
=, +=, -=, etc. | 代入演算子 |
defined? | テスト変数の定義と型 |
not | boolean NOT(低優先) |
or, and | boolean OR、boolean AND |
modifier-if, modifier-unless, modifier-while, modifier-until | 条件付き修飾子とループ修飾子 |
begin/end | ブロック |
以下は演算子の例です。
a = 10;
b = 20;
c = 30;
d = 6;
e = 0
e = a + b * c / d;
puts"a + b * c / d は #{e}"
# 出力結果
# a + b * c / d は 110
上の例では、乗算と除算は同じ優先順位なので、10 + (20 * 30) /6 のように動作します。