これは何?
目の前にいる海外からやってきた人にあいさつしたいとき、ありますよね?
どうせあいさつするならその方の国の言語であいさつしたいものです。
相手の国に合わせたあいさつをするときに便利なのが、条件分岐です。
この条件分岐をスッキリ書く方法を学んだので、アウトプットします。
やってみよう
レベル別に段階を踏んでやっていきます。
if文
if country == 'Japan'
hello = 'こんにちは'
elsif country == 'USA'
hello = 'Hello'
elsif country == 'France'
hello = 'Bonjour'
elsif country == 'Spain'
hello = 'Hola'
elsif country == 'China'
hello = '你好'
else
hello = 'Hello' # デフォルトの挨拶
end
もっとも地道に書く方法として、if文があります。
でも、いちいちelsif country ==
、hello =
と書くのはあまりスマートには見えないですね。
case文
case country
when 'Japan'
hello = 'こんにちは'
when 'USA'
hello = 'Hello'
when 'France'
hello = 'Bonjour'
when 'Spain'
hello = 'Hola'
when 'China'
hello = '你好'
else
hello = 'Hello' # デフォルトの挨拶
end
if文から卒業し、case文で条件分岐をしています。
ただしこれもいちいちhello =
と代入するのはちょっとカッコ悪いですよね。
ハッシュを使用
今回のような、条件と代入する変数のそれぞれが常に同一である場合は、以下のようにハッシュを使用することが可能です。
hello = {
Japan: 'こんにちは',
USA: 'Hello',
France: 'Bonjour',
Spain: 'Hola',
China: '你好'
}[country.to_sym]
to_sym
しない場合は以下のように書きます。
hello = {
'Japan' => 'こんにちは',
'USA' => 'Hello',
'France' => 'Bonjour',
'Spain' => 'Hola',
'China' => '你好'
}[country]
countryと一致するキーが見つからない場合のデフォルト値を設定する場合は以下のようにします。
hello = {
Japan: 'こんにちは',
USA: 'Hello',
France: 'Bonjour',
Spain: 'Hola',
China: '你好'
}.fetch(country.to_sym, 'Hello')
まとめ: あいさつは手短に
条件分岐のシンプルな書き方を知っておけば役に立つはず。