繰り返し処理を実装してみよう
while文やeach文など様々な繰り返し処理を行うメソッドは数多く存在しますが、
今回はtimesメソッドについて記載しようと思います。
問題
以下のような問題があったとします。
・要件を満たすプログラムを記述しなさい
・ユーザが数字を入力する
・入力した数だけHELLO WORLD!と出力する
私はことプログラムを以下のように実装しました。
def say_hello(num)
count = 0
while count < num do
puts "HELLO!"
count += 1
end
end
puts "数字を入力してください"
num = gets.to_i
say_hello(num)
say_hellowメソッドの中で変数countを定義し
HELLO WORLD!が出力されるたびにcountを+1して
ユーザーが入力した数がcountより少なくなったら出力をやめるというもの
要件は問題なく満たしております。
しかしこれ...長くないですか?
timesメソッド
上記の要件をもっと簡単に実装する方法があります。
それがtimesメソッド!
timesメソッドを使用すると以下のようになります。
def output(num)
num.times{ puts "HELLO WORLD!" }
end
puts "何回表示させますか?"
num = gets.to_i
output(num)
とてもすっきりしていますよね?
timesメソッドは変数に対して使用すると後述する処理をその回数分実行します。
そのためユーザが入力した数だけ出力したということですね
while文を使用しなくてもすっきりとしたコードで実装することができます