FizzBuzz

1〜10 までの数字を出力

lesson001.rb


for i in 1..10
puts i
end
実行結果

C:\>ruby c:\study\ruby\chapter002\lesson001.rb
1
2
3
4
5
6
7
8
9
10

1〜10 までの数字を出力

ただし、3の倍数は、"Fizz" を出力
lesson002.rb


(1..10).each do |i|
if i % 3 == 0
puts "Fizz"
else
puts i
end
end
実行結果

C:\>ruby c:\study\ruby\chapter002\lesson002.rb
1
2
Fizz
4
5
Fizz
7
8
Fizz
10

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
lesson003.rb


31.times do |i|
if i == 0

elsif i % 15 == 0
puts "FizzBuzz"

elsif i % 3 == 0
puts "Fizz"

elsif i % 5 == 0
puts "Buzz"

else
puts i
end
end

実行結果

C:\>ruby c:\study\ruby\chapter002\lesson003.rb
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
配列と関数を使用
lesson004.rb


def FizzBuzz(i)
if i % 15 == 0
return "FizzBuzz"

elsif i % 3 == 0
return "Fizz"

elsif i % 5 == 0
return "Buzz"

else
return i
end
end

array = []
30.times { |i| array[i] = i + 1 }
array.each { |i| puts FizzBuzz(i) }

実行結果

C:\>ruby c:\study\ruby\chapter002\lesson004.rb
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
map を使用
lesson005.rb


def FizzBuzz(i)
if i % 15 == 0
return "FizzBuzz"

elsif i % 3 == 0
return "Fizz"

elsif i % 5 == 0
return "Buzz"

else
return i
end
end

array = []
30.times { |i| array[i] = i + 1 }
array = array.map { |i| FizzBuzz i }
array.map { |i| puts i }

実行結果

C:\>ruby c:\study\ruby\chapter002\lesson005.rb
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

もちろん


array = array.map { |i| FizzBuzz i }
array.map { |i| puts i }
は、

array.map { |i| puts FizzBuzz(i) }
と、1行で書けるのだが、
map は、 each と違って配列を返すことを示したかったので。