0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rubyで条件式を省略するためのテクニック

Last updated at Posted at 2023-04-20

自己紹介

はじめまして、junpei314です。よろしくお願いします。
普段は、アルバイトでScratchというヴィジュアルプログラミング言語を小学生を相手に教えています。
生徒のために教材として自作ゲームを制作する機会が多く、そこからプラグラムの面白さにハマりました。
今はより本格的なWebサービスの開発をしてみたいと考え2023年4月頭から本格的にRubyを学習し始めています。

これから投稿する記事の方針

アウトプットの一環として、私と同じ様なプログラミング初心者の助けになるようなTipsや自分の勉強したことのアウトプット、エラーの原因や解決方法などなど備忘録的なものを投稿していきます。また、オリジナルのWebアプリも制作していく予定なのでその様子も投稿できればと思います。

はじめに

さて、記念すべき初投稿はどんな面白いことを書いてやろうか。
PCの前で張り切ってみたはいいものの、そもそもQiitaは技術ブログ。
当然ですが何の変哲もない初心者向けTips的な内容にしようと思います。

条件式を省略するためのいくつかのテクニック

プログラミングを始めてすぐに出てくる条件式。いろんなところで使いますよね。
便利すぎてついつい何回も使ってしまい、気づいたらネストがめちゃくちゃ深くなってしまった、なんてことありませんか?
自分で書いておいてなんですが、私自身気づいたら条件分岐だらけで複雑なコードになってしまったなんてことがよくあります。そこで今回は復習がてら条件式を省略する方法をいくつか紹介していきたいと思います。

例題1

早速ですが、例題を作成してみました。
下記のコードを省略するには三項演算子という構文が使えます。

before
x = 5
if x > 0 
  'positive'
else
  'negative'
end
条件演算子(三項演算子)

条件式?真の場合の値:偽の場合の値という形で使用します。処理を行うわけではなく値を返すだけであることに注意が必要です。

after
x = 5
y = x > 0 ? 'positive' : 'negative'

例題2

2つ目の例題は下記の通り。このコードを省略するにはいくつかの方法があります。

before
x = 5
if x > 0
  puts 'x is positive'
end
論理演算子

条件式 && 真の場合の処理または条件式 || 偽の場合の処理という使い方をします。

after
x = 5
x > 0 && puts("x is positive")

偽の場合の処理では条件式 || 偽の場合の処理を使います。

after
x = -5
x > 0 || puts("x is positive")
インラインif(修飾if

処理 if 条件式という使い方をします。

after
x = 5
puts "x is positive" if x > 0

偽の場合の処理では処理 unless 条件式という使い方をします。

after
x = 5
puts "x is positive" unless x <= 0

まとめ

今回はif条件式の省略方法として条件演算子論理演算子インラインifを紹介しました。
単純なif条件式であればこれらの構文を使うことでコードのまとまりが良くなります。
ただ、条件演算子に関しては使い方によっては逆にコードの可読性が低下する場合があるため、注意しながら使用しましょう。

#参考URL
Ruby 3.2 リファレンスマニュアル 演算子式

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?