【Ruby入門】数値と文字列を使う!四則演算による数値計算と式展開【#4】


こんにちは。Tomoyuki(@tomoyuki65)です。

Rubyでは数値や文字列は全てオブジェクトですよね。

そんなオブジェクトでは、様々なメソッドが使えます。

 

特に数値オブジェクトや文字列オブジェクトのメソッドの使い方を覚えると、様々な処理を簡単に行うことができるんです!

 

この記事では、そんな数値や文字列について解説します。

 

 

 



数値オブジェクトを使ってみよう!

数値オブジェクトは、「3」や「3.14」などの値です。

数値オブジェクトのメソッドを使い、数値計算を行なってみましょう。

 

数値オブジェクトのクラスとメソッドの確認

まずは数値オブジェクト「3.14」の場合のクラスを確認してみましょう。

以下のプログラムを実行してみて下さい。

print 3.14.class

 

実行結果
Float

 

このように、数値「3.14」はFloatクラスに属しているのが確認できます。

 

では次に数値オブジェクト「3.14」のメソッドを確認してみましょう。

以下のプログラムを実行してみて下さい。

print 3.14.methods

 

実行結果
[:%, :*, :+, :-, :/, :<, :>, :-@, :**, :<=>, :<=, :>=, :==, :===, :eql?, :inspect, :to_int, :to_s, :to_i, :to_f, :hash, :coerce, :divmod, :fdiv, :modulo, :abs, :magnitude, :zero?, :finite?, :infinite?, :floor, :ceil, :round, :truncate, :positive?, :negative?, :quo, :nan?, :next_float, :prev_float, :to_r, :numerator, :denominator, :rationalize, :arg, :angle, :phase, :+@, :singleton_method_added, :div, :i, :remainder, :real?, :integer?, :nonzero?, :step, :rectangular, :rect, :polar, :real, :imaginary, :imag, :abs2, :conjugate, :conj, :to_c, :between?, :clamp, :instance_of?, :kind_of?, :is_a?, :tap, :public_send, :remove_instance_variable, :singleton_method, :instance_variable_set, :define_singleton_method, :method, :public_method, :extend, :to_enum, :enum_for, :=~, :!~, :respond_to?, :freeze, :object_id, :send, :display, :nil?, :class, :singleton_class, :clone, :dup, :itself, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :frozen?, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variable_get, :instance_variables, :instance_variable_defined?, :!, :!=, :__send__, :equal?, :instance_eval, :instance_exec, :__id__]

 

数値オブジェクトのメソッドが沢山出力されましたが、全てを覚える必要はありません。

まずは四則演算に関するメソッドを覚えましょう。

(「+」や「-」などの記号もメソッドです。)

 

数値オブジェクトの四則演算

四則演算をしてみましょう。

では以下のプログラムを実行してみて下さい。

# 「+」 足し算
puts 1 + 1
# 「-」 引き算
puts 10 - 5
# 「*」 掛け算
puts 3 * 3
# 「/」 割り算
puts 4 / 2
# 「%」 割った余りを求める
puts 10 % 3
# 「**」 べき乗
puts 2 ** 10

 

実行結果
2
5
9
2
1
1024

 

このように、数値オブジェクトは四則演算ができ、様々な計算が可能です。

 

分数について

Rubyでは、分数も表すことができます。

では以下のプログラムを実行してみて下さい。

# 「5分の2 + 5分の2」の場合
puts Rational(2, 5) + Rational(2, 5)
# 以下でも同じ結果になります。
puts 2/5r + 2/5r

 

実行結果
4/5
4/5

 

四捨五入、小数点以下の切り捨て・切り上げ

Floatクラスのオブジェクトでは、四捨五入、小数点以下の切り捨て、切り上げをするメソッドがあります。

では以下のプログラムを実行してみて下さい。

# 3.14を四捨五入
puts 3.14.round
# 3.14の小数点以下を切り捨て
puts 3.14.floor
# 3.14の小数点以下を切り上げ
puts 3.14.ceil

 

実行結果
3
3
4

 



文字列オブジェクトを使ってみよう!

次に文字列オブジェクトを使ってみましょう。

文字列オブジェクトの書き方は、文字を「”」(ダブルコーテーション)や「’」(シングルコーテーション)で囲います。

「”」と「’」の違いは、「”」の場合は特殊文字や式展開が使えます。

 

特殊文字を使った場合

特殊文字を使い、「”」と「’」の違いを確認しましょう。

では以下のプログラムを実行してみて下さい。

# 「"」と「'」を使ってみる。
puts "Hello World"
puts 'Hello World'
# 特殊文字「\n」(改行)を使った場合
puts "Hello\n World"
puts 'Hello\n World'

 

実行結果
Hello World
Hello World
Hello
World
Hello\n World

 

実行結果の通り、「”Hello\n World”」のように「”」を使用した場合は特殊文字が使えます。

このように、「\n」のような特殊文字をバックスラッシュ記法と呼びます。

 

「\n」は改行を表すバックスラッシュ記法ですが、他にも色々な種類があります。

気になる方は調べてみて下さいね。

 

式展開を使った場合

次は式展開を使い、「”」と「’」の違いを確認しましょう。

では以下のプログラムを実行してみて下さい。

# 式展開
puts "100円のりんごを11個買った代金は#{100 * 11}円です。"
puts '100円のりんごを11個買った代金は#{100 * 11}円です。'

 

実行結果
100円のりんごを11個買った代金は1100円です。
100円のりんごを11個買った代金は#{100 * 11}円です。

 

このように、「”」を使えば文字列の中で計算できます。

 

また、変数を式展開することも出来ます。

では以下のプログラムを実行してみて下さい。

# 変数を式展開
tanka = 100
syouhin = "りんご"
kosuu = 11
puts "#{tanka}円の#{syouhin}を#{kosuu}個買った代金は#{tanka * kosuu}円です。"
puts '#{tanka}円の#{syouhin}を#{kosuu}個買った代金は#{tanka * kosuu}円です。'

 

実行結果
100円のりんごを11個買った代金は1100円です。
#{tanka}円の#{syouhin}を#{kosuu}個買った代金は#{tanka * kosuu}円です。

 

このように、文字列中で特殊文字や式展開が使えるので基本的に「”」を使えば良さそうです。

ただ、場合によっては「’」の方が良い場合もありますので、違いや使い方について覚えておきましょう。

 

また、文字列にもメソッドがあるので使ってみましょう。

例として、以下のプログラムを実行してみて下さい。

# 文字列を結合
puts "好きな食べ物は" + "ハンバーグです。"
# 文字列を繰り返す
puts "りんごを10回言って下さい"
puts "りんご" * 10

 

実行結果
好きな食べ物はハンバーグです。
りんごを10回言って下さい
りんごりんごりんごりんごりんごりんごりんごりんごりんごりんご

 

文字列オブジェクトのメソッドも沢山あるので、基本的なものから覚えると良いでしょう。

 

まとめ

  •  数値オブジェクトは四則演算(+, -, *, /, %, **)を覚えよう
  •  数値オブジェクトは分数を表すこともでき、Floatクラスでは四捨五入、小数点以下の切り捨て、切り上げについて覚えよう
  •  文字列オブジェクトの書き方は「”」と「’」があるので違いを覚えよう
  •  「\n」のような特殊文字をバックスラッシュ記法と呼び、他にも色々な特殊文字が存在する
  •  「”」を使用した場合は式展開が可能
  •  数値オブジェクトや文字列オブジェクトには様々なメソッドがあるので、基本的なものから使い方を覚えよう

 

  •  関連記事

オススメのRuby入門サイトはどれ?Rubyの学習方法をまとめる

2017.10.24

【Ruby入門】オブジェクトとは?オブジェクト指向で設計や開発する理由【#3】

2017.07.26

 

The following two tabs change content below.
Tomoyuki

Tomoyuki

2018年1月1日に開業したプロブロガー1年目です。 元EBSエンジニア(SE)で、今はブログ運営とゲーム配信をしています。 Rubyを中心としたWeb開発情報や仮想通貨について情報発信中です!








シェアありがとうございます、


時代の変化とともに、多様な生き方へ

仕事がAIや自動化で無くなっていく時代を生き抜くために、
モノ創りと多様な生き方を示します。



ビットコインを買うならZaif取引所がおすすめ!

Zaif取引所は他の主要取引所と比べて手数料が安いのが特徴。
ビットコインの他、イーサリアム、モナーコイン、ネムも購入可能です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です