Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby】FizzBuzzプログラムのチュートリアル|解答例を見ながら基本問題にチャレンジしよう

Ruby FizzBuzzプログラム

動画で解説を見る



開発環境

  • Ruby version: ruby 3.1.2

RubyのFizzBuzzプログラムとは

FizzBuzzとは英語圏で長距離ドライブ中や飲み会の時に行われる数字を用いた言葉遊びです。

ジェフ・アトウッドがコードが書けないプログラマ志願者を見分ける手法としてFizzBuzz問題を提唱し、その提唱は世界的に様々な場所で議論の対象になっているほど有名です。

そのため、基本的なアルゴリズムを考え、プログラムを構築するチュートリアルとして幅広く使用されています。

Wikipedia:https://ja.wikipedia.org/wiki/Fizz_Buzz

RubyのFizzBuzzプログラムのチュートリアル

FizzBuzzプログラムにチャレンジするにあたり、FizzBuzzプログラムのルールを確認しましょう。

FizzBuzzプログラムのルール

  • 1から100までの数字で下記の条件に合うプログラムを構築する
  • 3の倍数=>Fizzを表示する
  • 5の倍数=>Buzzを表示する
  • 3の倍数かつ5の倍数=>FizzBuzzを表示する
  • いずれにも当てはまらない場合は数字を表示する

FizzBuzzプログラムのサンプルコード

RubyのFizzBuzzプログラムのサンプルコードは下記になります。

FizzBuzzプログラムの実行結果

RubyのFizzBuzzプログラムの実行結果は下記になります。

RubyのFizzBuzzプログラムの注意点

FizzBuzzプログラムを構築するにあたり、いくつか注意点を解説していきます。

条件分岐の処理の順番で結果がかわる

FizzBuzzプログラムのルール通りにif文を構築した場合、下記になります。

そして、実行結果を確認します。

実行結果の15行目は「3の倍数かつ5の倍数」にあたる15ですが、if文の条件分岐の順番をルール通りにしたことで「FizzBuzz」と表示されず「Fizz」と表示されています。

これは15が2行目の「if number % 3 == 0」で「true」となり、3行目の「puts "Fizz"」が実行されたため、6行目の「elsif number % 3 == 0 && number % 5 == 0」まで処理がいかなかったことが原因です。

そのため、どのように処理を行えば正常にプログラムを構築できるのか、基本的なアルゴリズムを考えることが大切です。

おわりに

RubyのFizzBuzzプログラムのチュートリアルを解説してきましたが、いかがだったでしょうか。

もし、私がFizzBuzzプログラムを書くとしたら下記のようにプログラムするでしょう。

いわゆるオブジェクト指向を少し反映したプログラムですが、「define(ディファイン)」で処理をメソッド化し、メソッドを呼び出すことで戻り値を出力することで保守性と可読性を考慮しています。

そのほかにも、1行でプログラムを書くことを「one liner(ワンライナー)」といいますが、最短で1行でプログラムすることもできます。

FizzBuzzプログラムは、基本的なアルゴリズムを学ぶことができる基本問題なので、是非、チャレンジしてください。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby