【Ruby】Rubyにおける演算子の優先順位について詳しく解説します

Ruby

演算子とは

演算子は、オペランド(数字等)に対してさまざまな種類の操作を行うために使用されます。

優先順位の異なる複数の演算子が存在する式で、どの演算子を先に実行するかは、その優先順位によって決定されます。例えば、「*」と「/」は同じ優先順位なので、「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?テスト変数の定義と型
notboolean NOT(低優先)
or, andboolean 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 のように動作します。

タイトルとURLをコピーしました