Rubyの練習問題を解いてみた
11日目です。
昨日Fizz Buzzプログラム作成を通して理解が身についたので、ネット上で練習問題を解いてみました。
https://www.yukisako.xyz/entry/ruby-practice
問1〜7までは文字を出力したり簡単な計算をしたりで、問題なく解けたので省きます。
問8、9もシンプルな条件分岐の問題だったので、下記のようにできました。
# 問8
num1 = 22
if num1 > 50
puts "num1は50より大きいです。"
else
puts "num1は50以下です"
end
# 問9
num1 = 22
if num1 % 2 == 0
puts "num1は偶数です"
else
puts "num1は奇数です"
end
問題は次からでした。
問10
「おはよう」と10回表示されるプログラムを書いてください
(ただし、for文を用いてください)
問11
「こんにちは」と10回表示されるプログラムを書いてください
(ただし、while文を用いてください)
、、、あれ、「for」「while」ってどうやって使うんだっけ?
「if」とか「case」は例題でも使う機会が多かったのですが、forやwhileってあまり見ないので全然思い出せず、、
再度調べました。
for文
for 変数 in オブジェクト do #doは省略しても良い
処理
end
while文
while 条件式 do
処理1
処理2
処理3
・・・
・・・
end
https://www.sejuku.net/blog/19121
上記を元に作った結果
# 問10
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
i = 0
for i in numbers
if i < 11
i += 1
puts 'おはよう'
end
end
# 問11
i = 0
while i < 10 do
i += 1
puts "こんにちは"
end
なんとか要件通りのものは作れました。
が、リファクタリングできると思うので、改善します。
本日はチェリー本第8章(モジュールを理解する)まで終わらせました。
正直、前章(クラスの作成を理解する)後半からモジュールの話は今の私に難しく、体系的に理解ができていないと思います。このまま他の章に行ってもよくわからないまま時間だけが過ぎてしまいそうなので、明日から事前学習のRubyを進め、基本的なところから、クラスやモジュールについてまでの理解を深めるようにします。