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 == 0elsif 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
endarray = []
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
endarray = []
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 }
と、1行で書けるのだが、
array.map { |i| puts FizzBuzz(i) }
map は、 each と違って配列を返すことを示したかったので。