【PHP】array_map関数を使ってFizzBuzz問題サンプルプログラム

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、13年目エンジニアです。

この記事では、 PHParray_map関数を使ってFizzBuzz問題

  • FizzBuzz問題とは
  • サンプルプログラム
  • 実行結果
  • プログラム解説

と、丁寧に解説していきます。

前提条件:実行環境について

実行環境は以下の通りです。

OS Windows11
PHPのバージョン 8.2.4
XAMPPのバージョン 8.2.4

PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。

FizzBuzz問題とは

FizzBuzz問題とは、有名なプログラム問題の1つで

  • 1から順々に数字を表示する
  • 3の倍数の場合は「Fizz」と表示する
  • 5の倍数の場合は「Buzz」と表示する
  • 3の倍数、かつ、5の倍数の場合は「FizzBuzz」と表示する

というルールのもと考えるプログラム問題です。

この記事では、array_map関数を使って30までの範囲でFizzBuzz問題のサンプルプログラムを解説します。
array_map関数については、以下の記事をご参考ください。

phpプログラムは

C:\xampp\htdocs

配下に、【sample.php】というファイル名で格納しています。
PHPのarray_shift関数を解説

FizzBuzz問題サンプルプログラム

実行結果

XAMPPを起動して、【http://localhost/sample.php】のURLにアクセスします。

XAMPPでPHPの動かし方については、こちらの記事をご参考ください。

PHPのarray_map関数を使ってFizzBuzz問題サンプルプログラム

FizzBuzz問題ができていることが確認できました。

プログラム解説

FizzBuzz問題の肝の条件判定をしている

  • 条件判定の順番
  • 倍数の判定の仕方
  • switchについて

と解説します。

条件判定の順番

FizzBuzz問題のルールは

  • 1から順々に数字を表示する
  • 3の倍数の場合は「Fizz」と表示する
  • 5の倍数の場合は「Buzz」と表示する
  • 3の倍数、かつ、5の倍数の場合は「FizzBuzz」と表示する

です。
この中で最も優先すべきルールは

  • 3の倍数、かつ、5の倍数の場合は「FizzBuzz」と表示する

です。
なぜなら3の倍数、かつ、5の倍数(たとえば15)は

  • 3の倍数の場合は「Fizz」と表示する
  • 5の倍数の場合は「Buzz」と表示する

どちらの条件も正となります。
なので1番最初に

  • 3の倍数、かつ、5の倍数の場合は「FizzBuzz」と表示する

をif文に指定する必要があります。

倍数の判定の仕方

倍数の判定で使っている%算術演算子とは、演算子の左辺を右辺で割った余りを返す演算子です。
倍数はある数を整数倍した数のことです。
%算術演算子を使って割った余りを求めて0だと倍数だと判定できます。
たとえば

だと、numberを3で割った余りが0と一致すればiは3の倍数であると判定できます。

%算術演算子については、詳しくはこちらの記事をご参考ください。

switchについて

このサンプルプログラムでは条件判定でswitchを使ってますが、if文でも書くことができます。
if文で書くと、条件判定は以下のようになります。

まとめ:FizzBuzz問題をやってみよう!

以上がPHPでarray_map関数を使ったFizzBuzz問題サンプルプログラムでした!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました