icon
icon

現場で役立つ!Rubyで演算子を使う方法【初心者向け】

初心者向けにRubyで演算子を使う方法について解説しています。演算子にも代数演算子や比較演算子などいくつか種類があるので、よく覚えておきましょう。実際の業務でも役立つ知識になるはずです。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、Rubyで書く演算子の使い方を解説していきます。

小学生の時に習った算数と考え方は似ていますが、見慣れない記号などもあるので、すぐ使えるように覚えておきましょう。

そもそもRubyがよく分からないという方は、Rubyとは何なのか解説した記事をご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回は演算子とその種類について勉強しよう。

大石ゆかり

田島メンター!!演算子というのはどういうものですか~?

田島悠介

演算子は足し算や掛け算を行ったり変数に値を代入したり、2つの値を比較したりと色々な機能を持っているんだ。プログラミングを行う上で必ず使用するものなのでしっかり理解しておこう。

大石ゆかり

はい!お願いします!

 

演算子とは

四則演算や比較演算などの演算を行うために使う「記号」のことを演算子といいます。
例えば、加算(足し算)を意味する「+」記号がありますが、この記号が演算子となるわけです。
今回解説するRubyの演算子には、「代数演算子」、「代入演算子」、「比較演算子」、「論理演算子」、「三項演算子」、「配列演算子」、「ハッシュ演算子」があります。
以下では、これらの演算子について説明していきます。

 

代数演算子

算数で習った基礎代数と同じ動作をします。
Rubyで用意されている代数演算子には加算(足し算)、減算(引き算)、乗算(掛け算)、除算(割り算)、剰余(余り)、べき乗があります。これらを表す代数演算子と簡単な例は次のとおりです。

 

演算子 例・意味
+ 1 + 3 # 加算
3 – 2 # 減算
* 3 * 4 # 乗算
/ 5 / 2 # 除算
** 3 ** 2 # べき乗(3の2乗)
% 5 % 3 # 剰余(余り)
実際の実行結果を見てみましょう。

327216ea02acde5cc634c0efaec965cf-620x246

「/(除算)」の場合は、商の値のみが返ってきます。
また、「%(剰余)」の場合は、剰余(余り)の値のみが返ってきます。
このように代数演算子を使うことで数値を使った計算を簡単に実行することができます。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

代入演算子

代入演算子は変数を定義するときや変数に新たに値を代入するときによく使われます。

最も代表的な代入演算子は「=」で書式は次の様になります。

変数 = 値

例えば、変数aに10という値を入れたい場合は次の通りです。

a = 10

この他にも代数演算子と組み合わした代入演算子があります。

a += 3  # a = a + 3 と同じ
a -= 3   # a = a - 3 と同じ
a *= 3   # a = a * 3 と同じ
a /= 3   # a = a / 3 と同じ

例えば、変数aに対して4を加算した値を入れるときの実行結果は次のようになります。

58c1bffbd510a1b8d3fe59fd98de8d11-620x237

 

比較演算子

比較演算子は2つの値の大小を比較する演算子です。

算数でもよく出てきた等号(==)や不等号(>, <)のことです。

比較演算の結果は「true」か「false」で、比較の結果が正しければ「true」、間違っていれば「false」となります。

使い方の例は次の通りです。

a > b # aはbより大きい
a < b # aはbより小さい
a == b # aとbは等しい
a >= b # aはbより大きいか等しい
a <= b # aはbより小さいか等しい

この比較演算子はif文などでよく使われます。

変数aとbを比較して出力結果を変えるという処理は次のように書くことができます。

8e5fc26bd9c863e076a39e0786ea79b9-620x243

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

論理演算子

論理演算子は複数の条件を1つにまとめるときに使います。「&&」と「||」の記号を使います。

条件1 && 条件2

は条件1と条件2のどちらも「true」である場合に、全体の結果も「true」となります。

どちらか一方でも間違っている場合は「false」になります。

つまり、次のようになります。

1 > 0 && 5 < 10        # 両方正しいのでtrue
0 == 1 && 5 > 1        # 片方しか正しくないのでfalse

一方、

条件1 || 条件2

は、条件1と条件2のいずれか一方でも「true」ならば、全体の結果も「true」になります。

10 > 1 || 1 < 0            # 10 > 1は正しいので「true」
0 > 1 || -1 > 10          # 両方正しくないので「false」

この論理演算子もif文でよく使われます。簡単な実行例を以下に示します。

39e6b7566a878cc65cd7aae9984e43e0-620x251

 

田島悠介

比較演算子・論理演算子は条件分岐や繰り返し処理でもよく使われるよ。

大石ゆかり

変数aが5よりも小さかったら……みたいな感じですか?

田島悠介

そうだね。あと繰り返し処理のときは不等号の向きを間違えないように注意しよう。全く別の結果になってしまったり、無限ループになってしまう可能性があるからね。

大石ゆかり

分かりました!

 

三項演算子

三項演算子は条件式の結果によって異なる値を返す演算子です。書式は次の通りです。

条件 ? 式1 : 式2

この式の意味は、条件が正しい(true)とき式1が結果として返ります。

また、条件が間違っている(false)ときは式2が結果として返ります。

例えば、比較演算子の例で書いたaとbの値の大小を比較するプログラムは三項演算子を使うと次のように書き換えることもできます。

e3b981f1dda7abdd8b00ff32c217c594-620x265

 

1時間でできる無料体験!

配列演算子

配列を結合したり、条件分岐するなどこの演算子は非常に便利です。

array1 + array2     # array1とarray2を結合した配列
array * n    # array1の要素をn回繰り返した配列
array1 & array2 # array1とarray2両方に含まれる要素からなる配列
array1 << obj     # array1にobj要素を追加した配列
array1 == array2  # array1とarray2が等しければtrue、false
array1[0]      # array1の0番目の要素

 

ハッシュ演算子

ハッシュ演算子では、(==, ===, [])といった記号を使用します。

hashA == hashB     # hashAとhashBの要素が等しければtrue
hashA === hashB  # hashAとhashBの要素が等しければtrue
hashA[key]              # hashAの中のkeyに関連付けられた値

 

以上、Rubyの演算子の使い方を解説しました。

種類が多く最初は混乱してしまうかもしれませんが、現場でも使える知識なのでぜひ覚えておきましょう。

 

田島悠介

演算子についての解説は以上だよ。

大石ゆかり

かなりたくさんの種類があるんですね。三項演算子や配列演算子などはちょっと複雑そうな感じです……

田島悠介

まずは代数演算子・代入演算子・比較演算子辺りをきちんと頭に入れておくといいんじゃないかな。この辺りはとてもよく使うのでいつでも書けるようにしておこう。

大石ゆかり

そうですね、自分でも練習してみます。ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する