【Ruby入門】演算子の使い方まとめ (or not ** < etc)

ruby_or3
長瀬来
書いた人 長瀬来
侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは! フリーエンジニアの長瀬です。

みなさんはrubyの演算子を使いこなしていますか?

この記事ではほとんどの演算子を網羅したので、これから学習する人や少し忘れてしまった人にはぴったりの内容になっています。

便利な演算子を使いこなせるようになれば、開発効率がアップすること間違いなしです。

なので、しっかりと各演算子の使い方を頭に叩き込んでおきましょう。

この記事では、rubyの演算子の使い方について

・演算子一覧
・代入演算子
・範囲演算子
・論理演算子
・比較演算子

という基本的な内容から、

・配列演算子
・ハッシュ演算子
・文字列演算子
・正規表現の演算子
・三項演算子

といった応用的な内容についても解説していきます。

演算子一覧

Rubyではこれらの演算子を使って、プログラミングしていきます。
それぞれの演算子は文脈によって異なる使い方をするものあるので、それぞれの演算子の違いをこれから確認していきましょう。

代入演算子

代入

代入には「=(イコール)」を使います。

自己代入

[実行結果]

自己代入可能な演算子はこちらです。

多重代入

範囲演算子

最大値を含むか含まないかによって..と…を使い分けることができます。

..(ドット2つ)

最大値を含む

…(ドット3つ)

最大値を含まない

論理演算子

&&、and

[実行結果]

&&またはandでは、両方の条件を満たした場合にtrueと評価されます。

もちろん&&の部分をandに入れ替えてもOKです。

||、or

[実行結果]

||またはorでは、どちらかががtrueであれば、全体としてtrueと評価されます。
(初めの式がtrueの場合、後の式は評価されません)

&&(and)と同様に、||をorに入れ替えても同じ挙動です。

!、not

[実行結果]

どの条件式もstrong="foo"なので、一見trueと評価されそうですが、すべてfalseになります。

というのも先頭につける!、not、!=が否定の意味を持つからです。

if文での論理演算子の使い方はこちらで詳しく説明していますので、一読されることをおすすめします。

比較演算子

比較演算子は基本的には7個あります。

1.== #等しいかどうか
2.!= (等しくないかどうか)
3.> (左側が右側よる大きい)
4.>= (左側が右側以上)
5.< (右側が左側より大きい)
6.<= (右側が左側以上)
7.<=> (右側が左側より大きい時は-1、等しければ0、左側が右側よる大きい時は1)

上記の演算子を使って、1と999を比べてみましょう。

[実行結果]

このように、<=>以外は真偽値で返されます。

繰り返しですが、<=>は左辺のほうが小さければ-1、大きければ1、等しいなら0、そして、比較できない場合はnilを返します。
今回は1の方が小さいので-1を返しました。

また、===は特殊で、比べるものによって判別の仕様が変わります。

[実行結果]

このように、数、範囲、正規表現、文字列と非常に広い範囲に渡って使用することができます。

if文の条件として使用するにはとても便利ですね。

配列演算子

配列の演算子には、実用的なものがたくさんあるので、しっかりと覚えておきましょう。

[実行結果]

使いか方を覚えていないものは、必ず自分で条件を変えて実行してみてくださいね。

また、配列の基本的な使い方はこちらで解説してありますので、一読することをおすすめします。

ハッシュ演算子

ハッシュの演算子の使い方の例です。

==演算子を使って、二つのハッシュのkeyとvalueが等しいのか比べてみましょう。

[実行結果]

このようにhash1の一つの要素を変更したので、hash1==hash2がfalseに変わるのを確認できます。

ハッシュの基本的な使い方はこちらで解説してますので、一読することをおすすめします。

文字列演算子

それぞれの演算子の文字列においての意味は


+はstring1とstring2の連結
<<はstring1の内容にstring2を加えて、string1を変更
*はstring1を指定した数字文だけ繰り返す

です

文字列についてはこちらに勉強しやすいようにまとめリンクが用意されていますので、一読することをおすすめします。

正規表現の演算子

[実行結果]

=~は文字列に対してのパターンマッチを行い、マッチしたらマッチした部分の配列の位置を整数値で返し、マッチしなかったらnilを返します。

!~マッチしなかったときにtrue、マッチした時にfalseを返します。

正規表現については理解が曖昧なかたは、こちらの記事を一読することをおすすめします。

三項演算子

三項演算子を使えば、if else endを一行に納めることができます。

よく使うテクニックでのでここでしっかりマスターしておきましょう。

[基本形]

[サンプルコード]

[実行結果]

このように、samuraiが100よりも小さい場合には”ruby”を返して、100よりも大きい場合には”rails”を返しています。

if else endを使った場合と比べてとてもスッキリと書けます。

まとめ

いかがでしたでしょうか?

この記事では、rubyの演算子の使い方についてを解説しました。

rubyには便利な演算子がたくさん用意されていることを確認いただけたかと思います。

ドットの数の違いで最大値を含める、含めないかが指定できるなどぱっと見は違いがわからないものもあるので、この記事でしっかりと使い方を定着させておきましょう。

また、一つ一つ自分で数値を変えて実行してみると理解が深まるので、ぜひ自分で一度やってみてください。

もしrubyの演算子の使い方について忘れてしまったらこの記事を確認してくださいね!

関連記事

Rubyカリキュラム無料公開中!
この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Rubyを最短で習得したい方へ
近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」
このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a1

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

長瀬来

長瀬来

Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。

経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど

言語が好きで、英語や中国、ドイツ語を勉強しました。
将来的には海外で生活したいです。

現在はRuby on Rails5やCocos2dxの勉強を主にしています。
人工知能のアルゴリズムにも興味があります。

ライターとしては
できるだけ初心者にわかりやすい文章になるように心がけています。

趣味は語学、読書、ピアノ、ジャグリング、フルートなどです。

連絡先はこちらです。
[email protected]