すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Ruby

更新日:

【Ruby】 三項演算子を使ってコードを簡潔に書けるようにしよう

ぴっかちゃん
ぴっかちゃん

三項演算子とは、複数行に渡るif文を1行で書くことができる条件演算子です。

三項演算子の基本構文-->
1
条件式 ? A : B
if文を使った場合-->
1
2
3
4
5
if 条件式
  A
else
  B
end

三項演算子を使うことで、if文を1行で記述することが出来ます。

三項演算子の使い方

この章では、三項演算子の使い方について解説します。

実際に三項演算子を使ってみよう

三項演算子を実際に使って解説します。

三項演算子

「?」と「:」で指定するので条件式や式を()でくくってあげると見やすくなります。

1
(num = 1) ? ("1です") : ("1以外です")

このように条件が1つのif文は三項演算子を使うと簡潔に書けます。
ただし複雑な構造の式には向いていないのでその際はif文を使って書いた方が可読性が上がります。
時と場合によってif文と三項演算子を使い分けるといいですね!

メソッドで利用してみよう

では実際に三項演算子はどのように使われるか例をみてみましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def identificate?(username)
  username == 'programan' ? true : false
end

puts 'ご自身のお名前をご入力ください'

while true do
  name = gets.chomp
  if identificate?(name)
    puts '本人確認が完了しました'
    exit
  else
    puts '本人確認が失敗しました、もう一度ご入力ください'
  end
end

上の例だとメソッド内で三項演算子を使用しています。
usernameが「programan」ならtrueが返り、それ以外の文字ならfalseが返ります。

そのメソッドを利用して本人確認ができるコードをこのように簡潔に書くことができます。Rubyの用語やコードの読み方に不安があるという方は、こちらの書籍が参考になりますよ。

三項演算子を使って変数を定義してみよう

次は三項演算子を使って変数を定義する例をみてみましょう。

1
2
score = 60
result = score > 80 ? '合格' : '不合格'

このコードだとまずscoreという変数を定義します。
そして score > 80 が true だと「合格」が、flaseだと「不合格」という文字がresultという変数に代入されます。
これをif文で書くとこんなにも長くなってしまいます。

1
2
3
4
5
6
socre = 60
if score > 80
  result = '合格'
else
  result = '不合格'
end

三項演算子を使うと非常にスッキリしますね。

この記事のまとめ

  • 三項演算子は、簡単なif文を1行で定義することが出来る
  • 条件式 ? 式A : 式Bで定義する
  • 複雑な構造の式には向いていない場合もあるので注意が必要!