Fizz Buzz問題を解く ~PHP編~

おつかれさまです。今回はPHPを使って、Fizz Buzz問題を解いてみようと思います。そもそもFizz Buzz問題とは、「3の倍数の時に「Fizz」、5の倍数の時に「Buzz」、15の倍数のときに「Fizz Buzz」と出力させる処理を書く」問題です。Wikipediaによると元は英語圏の言葉遊びみたいです。それでは、PHPで解いていきます!

目次

for文 + if文

多分一番ベーシックなやつです。for文で1ずつ加算しながら、if文で出力する文字を判断していくやつです。

for ($i = 1; $i <= 30; $i++) {
    if ($i % 15 === 0) {
        echo 'Fizz Buzz' . '<br>';
    } elseif ($i % 5 === 0) {
        echo 'Buzz' . '<br>';
    } elseif ($i % 3 === 0) {
        echo 'Fizz' . '<br>';
    } else {
        echo $i . '<br>';
    }
}

for文 + switch文

理屈は一緒!if文をswitch文に変更したもの。

for ($i = 1; $i <= 30; $i++) {
    switch (true) {
        case $i % 15 === 0:
            echo 'FizzBuzz' . '<br>';
            break;
        case $i % 5 === 0:
            echo 'Buzz' . '<br>';
            break;
        case $i % 3 === 0:
            echo 'Fizz' . '<br>';
            break;
        default:
            echo $i . '<br>';
    }
}n

while文 + switch文

for文をswitch文で表現したもの。

// 出力する変数を定義
$i = 1;

while ($i <= 30) {
    switch (true) {
        case $i % 15 === 0:
            echo 'FizzBuzz' . '<br>';
            break;
        case $i % 5 === 0:
            echo 'Buzz' . '<br>';
            break;
        case $i % 3 === 0:
            echo 'Fizz' . '<br>';
            break;
        default:
            echo $i . '<br>';
    }
    $i++;
}

終わりに

こういう問題楽しいですね!プログラミングしている感が段違い!ただ、今回の私の答えは、if文とfor文の処理をいろんなものに置き換えただけで、根本的には1つしか答えてないんですよね、、やろうと思えば、for文、if文、while文、switch文の組み合わせでもっとパターンつくれますし。。

多分別のロジックがあるはずなのですよね。。、今の私では思いつきませんでした。。。力不足。。アルゴリズムもちゃんと勉強して、また1年後とかにリベンジしようと思います!ではまた次の記事で。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次