こんにちは、たいし(プロフィールはこちら)です!
「プログラミングって難しそう」「コードが読めない」「どこから始めればいいかわからない」と悩んでいませんか?実はプログラミング初心者でも簡単にできる課題があります。それがFizzBuzzプログラムです。
なぜならFizzBuzzプログラムは、プログラミングの基本的な概念である条件分岐や繰り返し処理を理解するのに最適な課題だからです。しかも、数行のコードで完成するため、初心者でも達成感を味わえます。現役エンジニアの私も、プログラミング初心者のときFizzBuzzプログラムを使ってプログラミングについて理解を深めました。
この記事では、Rubyを使ってFizzBuzzプログラムを作成する方法を初心者にも分かりやすく解説します。この記事を読むとFizzBuzzプログラムを使って、Rubyの基本的な構文を学ぶことができます。
FizzBuzzプログラムを学ぶことで、プログラミングの基礎概念を知ることができる!
\プログラミング未経験者の学習について紹介!/
FizzBuzzてなに?
FizzBuzzは、以下の反応を示すプログラムです。
- 3で割り切れる数値を引数に渡すと、Fizzを返す
- 5で割り切れる数値を引数に渡すと、Buzzを返す
- 3と5の両方で割り切れる数値を引数に渡すと、FizzBuzzを返す
- それ以外の数値は、その数値を文字列に変換して返す
一見シンプルに見えますが、条件分岐や繰り返し処理などのプログラミングの基本的な概念を理解するのに役立ちます。
FizzBuzzプログラムの歴史
FizzBuzzプログラムは、1960年代から存在する古くからあるプログラミング課題です。当時は面接でプログラミング能力を問うために使われていました。
近年では、プログラミング教育の教材としても広く活用されています。初心者でも理解しやすい課題であるため、プログラミングの基礎を学ぶ最初のステップとして最適です。
FizzBuzzプログラムのメリット
FizzBuzzプログラムには、以下のようなメリットがあります。
- プログラミングの基本的な概念を理解できる
- 論理的思考能力を鍛えられる
- 問題解決能力を向上できる
- プログラミングの楽しさを味わえる
FizzBuzzプログラムのサンプルコード
def fizz_buzz(number) if number% 15 == 0 'FizzBuzz' elsif number% 3 == 0 'Fizz' elsif number% 5 == 0 'Buzz' else number.to_s end end puts"1 以上の数字を入力してください" input= gets.to_i puts'結果は、、、' puts fizz_buzz(input)
コード内容を解説
まず実行する処理内容をdef ~ end で、メソッドを定義します。メソッド名の後ろに( )をつけて、引数を渡しています。引数とはメソッドを呼び出す際、メソッドに渡す値のことです。(引数のカッコは省略可能です)
次にif文を使って、条件分岐していきます。elsif、elseを使うことで、複数の条件で処理を分岐できます。
3・5で割り切れるは言い換えると、各値で割ったときに割り切れる(余りが0になる)ということです。割ったときの余りを出力する演算子は「%」です。またこの余りが0と等しいかを真偽するとき、「 == 」を使って判定できます。
また、「to_i」メソッドで文字列から整数へ変換できます。「to_s」メソッドで整数から文字列へ変換できます。
if~endの外にあるgetsメソッドについてです。このメソッドを使うと入力待ちの状態になり、何か文字を入力してEnterキーを押すまで次に進みません。また getsメソッドで入力された文字は、文字列として扱われるため整数へ変換しています。
ちなみにですが、3と5で割り切れるは「number % 3 == 0 && number % 5 == 0」と書くことも可能です。しかし3と5で割り切れる言い換えると、15で割り切れると同じです。そのため「number % 15 == 0」と書くほうがコードが短く済むため、今回はこちらを採用しています。また15の倍数は、3でも5でも割り切れる値なので、「number % 15 == 0」を条件分岐の先頭に持ってきます。先頭に「number % 3 == 0」や「number % 5 == 0」を書いてしまうと、そちらが先にtrueとなるのでFizzBuzzを返してくれなくなってしまいます。
まとめ
今回はFizzBuzzプログラムを作って、Rubyの基礎構文について解説しました。これにはRubyでの基本的な文法がたくさんに使われていて、プログラミング初心者の学習としては最適です。この記事を参考に実際に手を動かして、試してみることをおすすめします。
\プログラミング未経験者の学習について紹介!/