30歳 独学で始めるプログラミング ~WEBデザイン・アプリ開発~

ITスキルに興味がでたので、codeを書いてみたら面白くてハマってしまいました!日々何をやったのかを中心に、記事を書いていきたいと思います。

39日目:Ruby Ⅱ:nilとif文、要素にハッシュを持つ配列とeach文 (if nil条件式、each ハッシュ配列の繰り返し処理)

<学習日>

39日目

<学習内容>

① Ruby Ⅱ(61-100%):nilとif文、要素にハッシュを持つ配列とeach文 (if nil条件式、each ハッシュ配列の繰り返し処理)

<参考>

Progateレベル:168

 

<学習内容詳細>

f:id:yakuzen_kokoro:20200812221755p:plain

 

今日はRubyの2つ目の単元を終わらせました^^

 

他の言語で苦しんだeach文を用いた繰り返し処理でしたが、さすがに何回も今まで似たことを繰り返してきたので、問題なく学習完了です!

 

① Ruby Ⅱ(61-100%):nilとif文、要素にハッシュを持つ配列とeach文 (if nil条件式、each ハッシュ配列の繰り返し処理)

f:id:yakuzen_kokoro:20200812221804p:plain

さてRubyの基礎編あたりが終了した感じでしょうか。

 

nilをfalse扱いにする特性を用いてif文の条件式にぶっこめるという内容は、私にとっては初耳で勉強になりました。

 

後半のeach文+ハッシュを要素に持つ配列で繰り返し処理を実施する、という内容はそこそこプログラミングっぽくて好きなのですが、すでにほかの言語で概念は理解しており、あまり学ぶことはなかったかなという印象です^^;;

 

ではさっそく、実際のcodeを挙げながら、振り得っていきます!

 

・値がない場合は「nil」という値が返ってくる。ここで「nil」には「false」と同じ意味があることを利用して、「if」文と組み合わせることが出来る。

例えば、指定の値にデータが入っている時にはその値を、値が入っていないときには別の文言をアウトプットする場合は、以下のとおり。

 

test = {name:"math" }

if test[:point]
puts test[:point]
else
puts "点数は分かりません"
end

 

このように、点数のデータがあるときには、その点数をアウトプットし、点数のデータがない場合は「点数はわからない」というコメントを出力することが出来る。

ifの後の条件文が条件文っぽくないけれど、ここで「nil」が返ってきた場合には「false」と同じ解釈をif文がすると考えればよい。


・要素がハッシュの配列の扱い方
例を挙げると次のような使い方をする。

 

users = [
{name:"Ken", age:25}
{name:"John", age:30}
]

puts users[0][:age] ⇒ 25がアウトプットになる。

 

出力時には、配列のいくつめのハッシュかを最初に指定して、続けてハッシュのキーを指定すると、対応する値を呼び出せる。

 

また「each」と組み合わせることで、ハッシュを要素に持つ配列を定義するだけで、一気に大量のアウトプットを出力できる。

 

例えば上記のusersの配列に対して、以下のような使い方をする。

 

users.each do |user|
puts "#{user[:name]}の年齢は#{user[:age]}歳です"
end


Kenの年齢は25歳です
Johnの年齢は30歳です

 

というアウトプットになる。eachにはendが必要なので、忘れないように注意する。

 

さらに年齢が不明な人がいるような場合には、each文の中にif文を組み込む。具体的には以下のとおり。

 

users.each do |user|
if user[:age]
puts "#{user[:name]}の年齢は#{user[:age]}歳です"
else
puts "#{user[:name]}の年齢は不明です"
end
end

 

if文に対するendと、each文に対するendの両方を忘れないように注意する。

 

明日からはより実用的なRubyの実用例について学べると思っています!

ワクワクですね^^

 

ではでは、1日でも長く続けられるように頑張っていきます^^

同志の方、一緒に頑張っていきましょう!