カテゴリ: Ruby 更新日: 2026/02/02

Rubyの四則演算の基本と優先順位|()・**・/・% を正しく理解

四則演算の基本と優先順位:()・**・/・% を正しく理解
四則演算の基本と優先順位:()・**・/・% を正しく理解

先生と生徒の会話形式で理解しよう

生徒

「Rubyで足し算や掛け算をするとき、順番があると聞きました。どういうことですか?」

先生

「はい、それは四則演算の優先順位の話です。足し算、引き算、掛け算、割り算には計算順序があります。」

生徒

「計算順序が間違うと結果も変わるんですか?」

先生

「その通りです。正しい順序を理解することで、意図した計算結果を得られます。」

1. 四則演算とは?

1. 四則演算とは?
1. 四則演算とは?

Rubyで使う四則演算は、足し算(+)引き算(-)掛け算(*)割り算(/)です。さらに、剰余を求める%やべき乗の**も重要です。四則演算を理解すると、数値計算やプログラム内のロジックを正しく処理できるようになります。

2. 演算の優先順位

2. 演算の優先順位
2. 演算の優先順位

Rubyでは計算の順番があります。高い優先順位から順に計算されます。

  1. かっこ () 内の計算
  2. べき乗 **
  3. 掛け算・割り算・剰余 * / %
  4. 足し算・引き算 + -

例を見てみましょう。


result = 2 + 3 * 4
puts result

14

掛け算が先に計算され、その後に足し算が行われます。

3. かっこを使った計算の制御

3. かっこを使った計算の制御
3. かっこを使った計算の制御

かっこ()を使うと計算順序を自由に変更できます。


result = (2 + 3) * 4
puts result

20

この場合は足し算が先に行われ、その後掛け算が行われます。

4. 剰余(%)の使い方

4. 剰余(%)の使い方
4. 剰余(%)の使い方

%は割り算の余りを求める演算子です。プログラムで偶数奇数判定や周期処理に便利です。


puts 10 % 3  # 余り
puts 8 % 2   # 偶数判定

1
0

0が返る場合は割り切れる数であることを意味します。

5. べき乗(**)の使い方

5. べき乗(**)の使い方
5. べき乗(**)の使い方

**は「べき乗」を計算します。2の3乗なら2を3回掛けるという意味です。


puts 2 ** 3   # 2の3乗
puts 5 ** 2   # 5の2乗

8
25

6. 複雑な計算の例

6. 複雑な計算の例
6. 複雑な計算の例

複数の演算子が混ざった場合も優先順位に従って計算されます。


result = 2 + 3 * 4 ** 2 / 2 % 5
puts result

3

計算手順:

  1. べき乗:4 ** 2 = 16
  2. 掛け算:3 * 16 = 48
  3. 割り算:48 / 2 = 24
  4. 剰余:24 % 5 = 4
  5. 足し算:2 + 4 = 6

※計算結果の理解を助けるために順番を追うことが重要です。

7. 四則演算のまとめ

7. 四則演算のまとめ
7. 四則演算のまとめ

Rubyで正しい計算をするには、四則演算の優先順位を理解することが基本です。かっこ()を活用すれば意図した計算順序を強制できます。掛け算や割り算、剰余、べき乗を正しく使うことで、複雑な数値計算も安心して行えます。初心者でも順序を意識すれば、計算ミスを防ぐことができます。

まとめ

まとめ
まとめ

ここまでRubyにおける四則演算の基本から、計算の優先順位、そして実務でも頻繁に利用される「べき乗(**)」や「剰余(%)」の使い方について詳しく解説してきました。プログラミングにおいて数値計算は避けて通れない要素ですが、単に数式を書くだけでなく、Rubyがどのようなルールに基づいて計算を処理しているのかを正確に把握しておくことが非常に重要です。

Rubyの演算子と優先順位の再確認

Rubyの計算順序は数学のルールとほぼ同じですが、プログラム特有の演算子も含まれます。あらためて優先順位を整理すると、最も高いのがかっこ()によるグループ化、次にべき乗**、その次に掛け算・割り算・剰余* / %、そして最後に足し算・引き算+ -の順となります。この順序を無視してしまうと、バグの原因となる予期しない計算結果を招くことになります。

実務で役立つ応用テクニック

例えば、大量のデータをループ処理する際に「3回に1回だけ特定の処理を行いたい」といった場合には、剰余演算子%が非常に有効です。また、データベースから取得した数値をもとに、複雑な割引き計算や税込み価格の算出を行う際にも、優先順位を制御するかっこ()の使い方が鍵を握ります。

Ruby on Railsなどのフレームワークを使ってWebアプリケーションを開発する場合でも、コントローラやモデルの中でこれらの演算は日常的に行われます。例えば、ショッピングサイトの合計金額計算や、ランキングのスコア算出ロジックなど、基礎的な四則演算の組み合わせで成り立っている機能は数多く存在します。

サンプルプログラム:平均点と判定ロジック

学んだことを活かして、少し実践的なコードを書いてみましょう。テストの点数の合計、平均、そして剰余を使った奇数・偶数判定を組み合わせた例です。


# テスト結果を変数に代入
japanese = 85
math = 90
english = 76

# 合計点を計算(足し算)
total = japanese + math + english

# 平均点を計算(割り算:かっこで足し算を優先させる)
average = total / 3

# 結果の出力
puts "合計点は#{total}点です。"
puts "平均点は#{average}点です。"

# 剰余を使って合計が偶数か奇数か判定
if total % 2 == 0
  puts "合計点は偶数です。"
else
  puts "合計点は奇数です。"
end

実行結果は以下のようになります。


合計点は251点です。
平均点は83点です。
合計点は奇数です。

データベースとの連携イメージ

実際のアプリケーションでは、これらの数値をデータベース(SQL)から取得して処理することが多いです。例えば、以下のようなproductsテーブル(商品テーブル)があるとします。


id | name       | price | stock
---+------------+-------+-------
1  | リンゴ     | 150   | 10
2  | バナナ     | 100   | 5
3  | メロン     | 1200  | 2
4  | イチゴ     | 500   | 0
5  | ミカン     | 80    | 20

このテーブルから、在庫がある商品の「在庫合計価値(価格 × 在庫数)」を計算するSQLクエリを考えてみましょう。SQLでもRubyと同様に、掛け算が優先されるルールが存在します。


SELECT name, price * stock AS total_value
FROM products
WHERE stock > 0;

実行結果は以下の通りです。


name   | total_value
-------+------------
リンゴ | 1500
バナナ | 500
メロン | 2400
ミカン | 1600

このように、Ruby側でのロジック構築だけでなく、SQL側での計算においても優先順位や演算子の知識は不可欠です。プログラム全体をスムーズに動かすために、基礎をしっかりと固めておきましょう。

先生と生徒の振り返り会話

生徒

「先生、まとめを読んで改めて優先順位の大切さが分かりました。特にかっこ()を使わないと、平均点の計算すら間違ってしまうんですね。」

先生

「その通りです。(a + b + c) / 3と書くべきところを、かっこを忘れてa + b + c / 3と書いてしまうと、最後のcだけが3で割られてしまい、とんでもない数値が出てしまいますからね。」

生徒

「剰余の%も、最初は使い道がピンと来なかったんですが、偶数・奇数の判定や、カレンダーのような周期的な処理で便利そうですね。」

先生

「よく気づきましたね!他にも、例えば『5行ごとに色を変えるテーブル』を作る時などにindex % 5 == 0といった条件式で使われます。べき乗の**も、統計データや利息計算など、少し高度な計算では必須の演算子ですよ。」

生徒

「SQLの中でも計算ができるなんて驚きました。RubyとSQLの両方で計算順序を意識すれば、より効率的なコードが書けそうです!」

先生

「素晴らしい意気込みですね。基本を疎かにせず、一つ一つの演算子がどのような役割を持つのか、常に意識しながらコードを書いていきましょう。次は、これらの数値を使って条件分岐をさらに深く学んでいくと楽しいですよ。」

カテゴリの一覧へ
新着記事
New1
Ruby
Rubyプログラムの実行方法まとめ:スクリプト・REPL・Shebang・実行権限の基本
New2
Rails
アセットの全体像をやさしく解説!importmap・jsbundling・cssbundlingの選び方
New3
Rails
Rails Action Cable入門|チャネル・接続・サブスクライブの基本を図解でやさしく解説
New4
Rails
RailsのScaffoldは使うべき?初心者向けにメリット・デメリット・安全な使い方と代替案を解説!
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.4
Java&Spring記事人気No4
Rails
Rails認可をやさしく理解!CanCanCan入門:ability.rbの定義とload_and_authorize_resource実例
No.5
Java&Spring記事人気No5
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.6
Java&Spring記事人気No6
Ruby
OpenSSL関連エラーの直し方を完全解説!証明書・ビルドオプション・brew対策まとめ
No.7
Java&Spring記事人気No7
データベース
MySQLとは?初心者向けにデータベースの特徴とできることをやさしく解説
No.8
Java&Spring記事人気No8
データベース
PostgreSQLのCTE(WITH句)完全解説!複雑なSQLを整理して読みやすくする書き方