🐈

チェリー本 FizzBuzzプログラムについて(Ruby)

2024/01/17に公開

今回はプロを目指す人のためのRuby入門(チェリー本)の2章のイントロダクションにある、FizzBuzzプログラムについて説明していきます。

FizzBuzzプログラム(FizzBuzz問題とは?)

このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法をジェフ・アトウッド(英語版)がFizzBuzz問題 (FizzBuzz Question) として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている。
参考:FizzBuzz-Wikipedia

FizzBuzzプログラムを完成させるための知識

FizzBuzzプログラムを完成させるためには以下の知識が必要です。
・Rubyに関する基礎知識
・文字列
・数値
・真偽値と条件分岐
・メソッドの定義
・その他の基礎知識

これがチェリー本2章の内容にもなっているということですね。
(何から何まで説明してくれないので、僕はしっかり読まないとここまで理解できなかったです💦)
これらの知識を今後はひとつづつ投稿していこうと思います!

FizzBuzzプログラムのルール

FizzBuzzプログラムは以下のようなルールがあります。
(初学者のかたは「そうなんだ〜」くらいで最初は思っていれば良いと思います、、)

・3で割り切れる数値を引数に渡すと、“Fizz”を返す。
・5で割り切れる数値を引数に渡すと、“Buzz”を返す。
・15で割り切れる数値を引数に渡すと、“Fizz Buzz”を返す。
・それ以外の数値はその数値を文字列に変えて返す

これは「FizzBuzz問題」として有名なので、聞いたことがある(もしくはほかの言語で解いたことがある)という方も多いでしょう。
あまりにも簡単なので、「これができないとプログラマとして失格」と言われたりすることもあります。
とはいえ、Rubyを初めてさわる方にとっては、「ロジックは思いついてもRubyで書く方法がわからない」と感じるかもしれません。

ここを見て、せめてFizzBuzz問題はできるようにしたい!って思いましたね😅

fizz_buzzメソッドの実行例

fizz_buzzメソッドを理解すると以下のメソッドを実行できるようになります。
(これから2章を学習するので、自分はまだわかりません!)

 fizz_buzz(1)  #=> "1"
 fizz_buzz(2)  #=> "2"
 fizz_buzz(3)  #=> "Fizz"
 fizz_buzz(4)  #=> "4"
 fizz_buzz(5)  #=> "Buzz"
 fizz_buzz(6)  #=> "Fizz"
 fizz_buzz(15) #=> "Fizz Buzz"

さいごに

今回はFizzBuzzプログラムについて説明しました。
知識が少ない状態でいきなり、このFizzBuzzプログラムの話があったので驚きましたが、
逆を言えば2章を理解すれば、FizzBuzzプログラムができ、プログラマとしての入り口にはいれる!
と教えているように感じました!
 次回からはFizzBuzzプログラムを完成させるための知識を一つずつ投稿していこうと思います!

参考文献

プロを目指す人のためのRuby入門 改訂2版
参考:FizzBuzz-Wikipedia

Discussion