PHP、Ruby、Salaのif文を一行で書く方法

昔の自分の記事を整理していて「Scala、PHP、Rubyのfor文を一行で書く方法」という記事で、for文を一行にまとめることをしていたのを発見しました。

そういえばそんなことしてたなぁと感傷に浸りつつ、その流れで今度はif文についても1行で記述する方法をまとめたので、ここにメモしておきます。

 

[PHP]

// 分岐1の通常if文
if ($num == 10) {
  echo '10です。';
}
   ↓↓↓↓
// 分岐1の一行if文
if ($num == 10) echo '10です。';

-----------------------------------------------------

// 分岐2の通常if文
if (is_null($value)) {
  echo '空です。';
} else {
  echo '空じゃない。';
}
   ↓↓↓↓
// 分岐2の一行if文
//三項演算子(条件演算子)
echo (is_null($value)) ? '空です。' : '空じゃない。' ;

 

[Ruby]

# 分岐1の通常if文
if num == 10
  puts '10です。'
end
   ↓↓↓↓
# 分岐1の一行if文
puts '10です。' if num == 10
 
-----------------------------------------------------

# 分岐2の通常if文
if value.nil?
  puts '空です。'
else
  puts '空じゃない。'
end
   ↓↓↓↓
# 分岐2の一行if文
#三項演算子(条件演算子)
puts value.nil? ? '空です。' : '空じゃない。'
rubyではif文の他に、unless文というものがあります。
unlessは条件の評価が逆になるので注意してください。
# 分岐1の通常unless文 
unless num != 10
  puts '10です。'
end
   ↓↓↓↓
# 分岐1の一行unless文
puts '10です。' unless num != 10

-----------------------------------------------------

# 分岐2の通常unless文
unless value.nil?
  puts '空じゃない。'
else
  puts '空です。'
end
   ↓↓↓↓
# 分岐2の一行unelss文
#三項演算子(条件演算子)
# 2分岐のunless文を一行で書く方法はないです。。。強いて書くと以下の通りになる
puts unless value.nil? ? '空じゃない。' : '空です。'

 

[Scala]

// 分岐1の通常if文 
if (num == 10)  {
  println("10です。")
}
   ↓↓↓↓
// 分岐1の一行if文
if (num == 10) println("10です。")

--------------------------------------------

// 分岐2の通常if文
if (value == null) {
  println("空です。")
} else{
  println("空じゃない。")
}
   ↓↓↓↓
// 分岐2の一行if文
// Scalaに三項演算子はないようです!!
// しかし無理くり以下のように書くことは可能です
println(if (value == null) "空です。" else "b")


投稿日:2019-02-26    更新日:2019-08-04

[スポンサーリンク]

  
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]