Rubyで便利な||演算子の使い方を現役エンジニアが解説【初心者向け】

初心者向けにRubyで便利な||演算子の使い方について現役エンジニアが解説しています。||は論理演算子の1つで、orを意味します。if文などの条件式で使うことが出来ますが、他にも連続式や代入式などでの使い方があります。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyで便利な||演算子の使い方について解説します。

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

 

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

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyで便利な||演算子の使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

||とはどういう意味か?

||は論理演算子の1つで、orを意味します。実は条件式で、AまたはBといった条件を作るだけでなく

a = false || true || true

 

というように、連続してしようしたり

a ||= 1

というように、代入演算子として使用することが出来ます。今回は、||の使い方を詳しく解説していこうと思います。

||演算子としての使い方

ここからは3種類の||の使い方についてみていきます。

 

条件式

まずはif文などで使う条件式としての利用方法をみていきます。このパターンで使う場合は、以下のように書いて使用します。

if 条件1 || 条件2 
  処理
end

 

例えば、数学の点数と国語の点数で条件を作る場合は

if math_score > 70 || ja_score > 70
  puts "Good"
end

 

というようになります。

 

連続式

次に||を連続して並べる連続式についてみていきます。||を連続して並べると、左から式を評価していき真となったものを返します。

sample = false || nil || 1

 

上記のようにコードを書いたときは、1がsampleに代入されます。

 

代入式

最後に代入式の使い方について説明します。あまり見慣れないかもしれませんが

a ||= 1

 

といった書き方が出来ます。

これは、左辺の変数(この場合はa)がfalseやnilの際には1が代入されるといった仕組みです。連続式で書くと、以下のようになり、基本的に同じ処理です。

a = nil || 1

 

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

実際に書いてみよう

それでは、3種類の||の使い方を実際にコードを書いて理解しましょう。

まずは条件式の使い方です。

en_score = 60
math_score = 80
if en_score > 70 || math_score > 70
 puts "Good"
end

実行すると、 math_scoreは70以上で条件を満たすので、Goodが返ってきます。次に代入式の使い方です。

a = nil || false || 100
puts a

この場合は、nilとfalseを飛ばして100がaに代入されるので100が返ってきます。最後に代入式の使い方です。

a ||= 100
puts a

aには何も代入されていないので、a ||= 100の処理の結果aに100が代入され、100と結果が返ってきます。

 

以上で解説を終わります。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。