【Ruby】Lesson1-3:四則演算の基本と演算子の動きを学ぼう

一つ前のページでは変数と定数について学習しました。
今回は 基本データ型と算術演算子 について見ていきましょう。
Lesson1:基礎文法編
・Lesson1-1:Ruby学習の入り口|初めてコードを書いてみよう
・Lesson1-2:変数と定数を理解しよう
・Lesson1-3:四則演算をしよう ◁今回はココ
・Lesson1-4:文字列を操作しよう
・Lesson1-5:乱数を生成しよう
・確認問題1-☆1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:オブジェクト指向編
Rubyで計算式を書くには|データ型と演算子の仕組み

Rubyには数値や文字列といったさまざまな 基本データ型 が存在します。またこれらのデータを計算するために使用する 算術演算子 も豊富に揃っています。
プログラミングにおいてデータ型とは、数値や文字列などそれが何のデータなのかを表す「データの種類」のことです。
例えば1や0.5といった「数値」は計算に使用できますが、”Ruby”といった文字列は計算できません。
Rubyに限らず多くのプログラミング言語では、そのデータが何のデータなのかを明示的に決める必要があります。
これらの要素を理解することで、これから学習する「数値の計算」や「文字列の結合」といった操作が可能になります。
基本データ型とは何か|代表的な型一覧
Rubyにはいくつかの基本データ型があります。データ型とは、簡単に言うとデータの種類です。
例えば「5」というデータがあったとき、コンピュータはこれが数値なのか文字なのか、指定されなければ判断できません。
数値であれば5+3のように演算に使用できますし、文字であれば他の文字列と連結して「5回目」などと表示できます。
それぞれのデータ型の特徴と使い方を見ていきましょう。
整数型(Integer)
整数は小数点を含まない数値のデータ型です。例えば、5
や -3
は整数です。
整数型は計算に用いることが多く、直接数値を入力するだけで使用できます。
number = 5 puts number # 出力: 5
浮動小数点数型(Float)
浮動小数点数は小数点を含む数値です。例えば、3.14
や -0.5
などがこれに該当します。
浮動小数点数は主に割り算や精密な計算に利用されます。また整数型と同様に直接数値を入力するだけで使用できます
pi = 3.14 puts pi # 出力: 3.14
文字列型(String)
文字列はテキストデータを表します。
ダブルクオーテーション (" "
) もしくはシングルクオーテーション (' '
) で囲むことで表現できます。
greeting = "Hello, Ruby!" puts greeting # 出力: Hello, Ruby!
真偽値型(Boolean)
Rubyではtrue
と false
という2つの値が真偽値として扱われます。
条件分岐や論理演算において頻繁に利用されます。
is_ruby_fun = true puts is_ruby_fun # 出力: true
nil型
Rubyにおけるnil
は「何もない」ことを意味します。
変数がまだ値を持っていないことを示すために使われます。
empty_value = nil puts empty_value # 出力:
計算に使う算術演算子の種類
Rubyには数値を扱うための算術演算子がいくつか用意されています。
主な算術演算子の使用例を見ていきましょう。
足し算に使う演算子(+
)
2つの数値を加算します。
result = 5 + 3 # 5+3の結果を変数resultに代入 puts result # 出力: 8
引き算に使う演算子(-
)
2つの数値を減算します。
result = 5 - 2 # 5-2の結果を変数resultに代入 puts result # 出力: 3
掛け算に使う演算子(*
)
2つの数値を乗算します。
result = 4 * 3 # 5×3の結果を変数resultに代入 puts result # 出力: 12
割り算に使う演算子(/
)
2つの数値を除算します。
整数同士の除算では結果も整数になるため、小数が欲しい場合は片方を浮動小数点数にする必要があります。
result = 10 / 2 # 10÷2の結果を変数resultに代入 puts result # 出力: 5 result = 10 / 3 # 10÷3の結果を変数resultに代入。10も3も整数なのでresultも整数になる puts result # 出力: 3 result = 10.0 / 3 # 10.0÷3の結果を変数resultに代入。10.0が少数なのでresultも小数になる puts result # 出力: 3.3333333333333335
剰余に使う演算子(%
)
割り算の余りを返します。
偶数・奇数の判定に使われることが多いです。
result = 10 % 3 # 10÷3の余りを変数resultに代入 puts result # 出力: 1
累乗に使う演算子(**
)
左辺の数値を右辺の数値で累乗します。
result = 2 ** 3 # 2の3乗を変数resultに代入 puts result # 出力: 8
複合算術演算子
変数の値を更新する基本的な書き方として、Rubyでは以下のような書き方をします。
i = i+1 # 変数iに「変数iに1を足した数」を代入 # iの値が10であれば11になる
これは変数i
に今の値に1を足した新しい値を代入する、という意味です。
Rubyにはこうした処理をより簡潔に書く方法があります。それが「複合代入演算子」です。
以下の2行のコードは、どちらも同じ処理を意味します。
i = i+1 i += 1
このように「+=
」のような演算子を使うことで、コードが短く、読みやすくなります。
他にも、-=
, *=
, /=
, %=
など様々な複合代入演算子があり、値の更新を簡単に記述できます。
コードをすっきり書きたいときは、ぜひ複合代入演算子を活用してみましょう。
データ型と算術演算子を組み合わせたコード例
基本データ型と算術演算子を組み合わせることで、より複雑な計算や操作が可能です。
たとえば商品価格と個数を掛けて合計を計算したり、文字列を結合したりする場合に活用できます。
price = 500 # 商品価格 quantity = 3 # 購入個数 total = price * quantity #合計を計算して変数totalに代入 puts total # 出力: 1500
sei = "山田" # 苗字 mei = "花子" # 名前 full_name = sei + " " + mei #苗字と半角空欄と名前を合わせて変数full_nameに代入 puts full_name # 出力: 山田 花子
ただし、異なるデータ型を組み合わせる際には注意が必要です。文字列と数値を直接加算しようとするとエラーが発生します。
この場合は、to_s
メソッドを使って数値を文字列に変換する必要があります。
age = 20 # これは整数型 puts "私は" + age.to_s + "歳です" # 出力: 私は20歳です
このようにデータ型を変更するには専用のメソッドを使用します。
代表的なメソッドを以下にまとめます。このサイトをLesson1-1から順番に学習している方は、現時点では上から3つだけ暗記し、残りは後で振り返るようにしましょう。
文字列への変換|to_sメソッド
オブジェクトを文字列(String
)に変換します。
123.to_s # => "123"(整数を文字列に変換) nil.to_s # => "" (nilは空文字列に変換) true.to_s # => "true"(trueを文字列に変換)
整数への変換|to_iメソッド
オブジェクトを整数(Integer
)に変換します。変換できない文字列は0
になります。
"123.45".to_i # => 123 (小数部分は切り捨て) "abc".to_i # => 0 (変換不可の場合は0) true.to_i # => 1 (trueは1、falseは0)
浮動小数点数への変換|to_fメソッド
オブジェクトを浮動小数点数(Float
)に変換します。
"45.67".to_f # => 45.67(文字列を小数に変換) "abc".to_f # => 0.0 (変換不可の場合は0.0) 123.to_f # => 123.0(整数を浮動小数点に変換)
まとめ
Rubyの基本データ型と算術演算子は、プログラム内での計算やデータの扱いに欠かせません。
ここで学んだ基礎を基に、さらに複雑な操作ができるようになるための基盤を作っていきましょう。
練習問題|四則演算とデータ型の組み合わせを試そう

基本データ型と算術演算子をしっかりと身に着けるため、練習問題に挑戦しましょう。
四則演算をしよう
ユーザーが入力した2つの数値を使って、四則演算(加算、減算、乗算、除算)を行うプログラムを作成しましょう。
プログラムは最初にユーザーに2つの数値を入力させます。
入力された数値をもとに、加算、減算、乗算、除算の計算結果をそれぞれ表示するようにしてください。
以下の要件に従ってコードを完成させてください。
puts
とgets.chomp.to_f
を使用して、ユーザーから数値を2つ入力として受け取ること。- 最初の数値を
num1
、2つ目の数値をnum2
という変数に格納すること。 - 以下の演算を行い、それぞれ結果を表示すること。
num1
とnum2
の加算結果num1
とnum2
の減算結果num1
とnum2
の乗算結果num1
とnum2
の除算結果
- 各演算結果を
puts
を使用して表示し、表示する際には「加算結果:」「減算結果:」などのメッセージを含めること。
ただし、以下のような実行結果となること。
最初の数値を入力してください: 5 二番目の数値を入力してください: 3 加算結果:8.0 減算結果:2.0 乗算結果:15.0 除算結果:1.6666666666666667
【ヒント】自力で解くのが難しい人へ
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:「最初の数値を入力してください:」と出力
2:変数num1に、ユーザーの入力を浮動小数点数に変換して代入
3:「二番目の数値を入力してください:」と出力
4:変数num2に、ユーザーの入力を浮動小数点数に変換して代入
5:変数additionにnum1とnum2の加算結果を代入
6:変数subtractionにnum1とnum2の減算結果を代入
7:変数multiplicationにnum1とnum2の乗算結果を代入
8:変数divisionにnum1とnum2の除算結果を代入
9:「加算結果:」とadditionの値を出力
10:「減算結果:」とsubtractionの値を出力
11:「乗算結果:」とmultiplicationの値を出力
12:「除算結果:」とdivisionの値を出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
# ユーザーに最初の数値を入力させる puts "最初の数値を入力してください:" =begin 【穴埋め問題1】 ここにユーザーからの入力を受け取り、浮動小数点数に変換してnum1に代入するコードを書いてください。 =end # ユーザーに二番目の数値を入力させる puts "二番目の数値を入力してください:" =begin 【穴埋め問題2】 ここにユーザーからの入力を受け取り、浮動小数点数に変換してnum2に代入するコードを書いてください。 =end # 各種演算を行う =begin 【穴埋め問題3】 ここでnum1とnum2の加算を行い、結果をadditionに代入するコードを書いてください。 =end =begin 【穴埋め問題4】 ここでnum1とnum2の減算を行い、結果をsubtractionに代入するコードを書いてください。 =end =begin 【穴埋め問題5】 ここでnum1とnum2の乗算を行い、結果をmultiplicationに代入するコードを書いてください。 =end =begin 【穴埋め問題6】 ここでnum1とnum2の除算を行い、結果をdivisionに代入するコードを書いてください。 =end # 計算結果を表示する puts "加算結果:" + addition.to_s puts "減算結果:" + subtraction.to_s puts "乗算結果:" + multiplication.to_s puts "除算結果:" + division.to_s
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
この問題の解答例と解説
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
# 四則演算プログラム # ユーザーに最初の数値を入力させる puts "最初の数値を入力してください:" num1 = gets.chomp.to_f # gets.chomp.to_f はユーザーからの入力を受け取り、改行を除去し、浮動小数点数に変換します。 # ユーザーに二番目の数値を入力させる puts "二番目の数値を入力してください:" num2 = gets.chomp.to_f # gets.chomp.to_f を使って二番目の数値も同様に処理します。 # 各種演算を行う addition = num1 + num2 # 加算 subtraction = num1 - num2 # 減算 multiplication = num1 * num2 # 乗算 division = num1 / num2 # 除算 # 計算結果を表示する puts "加算結果:" + addition.to_s puts "減算結果:" + subtraction.to_s puts "乗算結果:" + multiplication.to_s puts "除算結果:" + division.to_s
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
ユーザー入力と基本データ型の使用
puts "最初の数値を入力してください:" num1 = gets.chomp.to_f
puts
はメッセージを表示するメソッドです。ここでは「最初の数値を入力してください:」と出力し、ユーザーに数値の入力を促しています。gets
はコンソールからユーザーの入力を受け取るためのメソッドです。chomp
は入力されたデータから改行文字を除去し、to_f
は入力を小数点数(浮動小数点数)に変換します。
これにより、num1
に小数を含む数値を代入することができます。同様にして、次のコードも動作します。
puts "二番目の数値を入力してください:" num2 = gets.chomp.to_f
num2
に二番目の数値を小数として入力することができます。四則演算の実行
addition = num1 + num2 # 加算 subtraction = num1 - num2 # 減算 multiplication = num1 * num2 # 乗算 division = num1 / num2 # 除算
num1 + num2
は加算を行い、その結果をaddition
に代入します。同様に、-
は減算、*
は乗算、/
は除算を意味します。ここで使用されている四則演算子
+
,-
,*
,/
は、基本的な算術演算子と呼ばれ、Rubyでは数値の計算を行う際に頻繁に使われます。これらの変数には、それぞれの演算結果が代入されるため、後の処理で計算結果を参照することが可能です。
計算結果の表示
puts "加算結果:" + addition.to_s puts "減算結果:" + subtraction.to_s puts "乗算結果:" + multiplication.to_s puts "除算結果:" + division.to_s
ここでは四則演算の結果をそれぞれ
puts
を使って表示しています。addition.to_s
のように、to_s
メソッドで計算結果を文字列に変換しています。これは、文字列と数値を一緒に表示するために必要です。puts
により「加算結果:」「減算結果:」とそれぞれの計算結果が表示されます。
まとめ
このプログラムを通してRubyでの基本的なデータ型の取り扱いや、算術演算子の使い方を学ぶことができました。
数値入力や四則演算はプログラミングの基本的な部分ですので、他のプログラムでも積極的に活用してみてください。
少しずつ複雑なプログラムを作るためのステップとなりますので、今回の学びを基にチャレンジを続けていきましょう!
FAQ|Rubyの計算式と演算子の使い方について
- Q1. Rubyで「/」を使った除算は整数になりますか?小数になりますか?
-
Rubyでは
/
を使った割り算の結果は、整数同士なら整数のまま切り捨てになります。ただし、少なくともどちらかが小数であれば小数点以下も含めた結果が返されます。たとえば10 / 3
は3
に、10.0 / 3
は3.333...
になります。
- Q2. **(べき乗演算子)はいつ使うのが適切ですか?
-
**
は数値のべき乗(累乗)を行いたいときに使います。例えば2 ** 3
は8
を返します。これは「2の3乗」を意味し、指数計算に便利です。数学的な計算やルート計算(0.5乗)にも利用できるため、数値処理を行う際に重宝します。
- Q3. Rubyで%演算子を使うときに注意することはありますか?
-
%
は剰余(割り算の余り)を求める演算子です。負の数に対して使う場合、Rubyでは被除数と同じ符号の余りを返します。たとえば-10 % 3
は2
を返すため、Pythonなどとは挙動が異なります。クロス言語で比較する際は特に注意しましょう。