LoginSignup
2
2

More than 1 year has passed since last update.

JavaScript 初学者向け「FizzBuzz」 の考え方

Posted at

初めての投稿は、最近やってみたFizzBuzzについて書きたいと思います。

qiitaが初めて+昨日.mdについて知ったので見苦しいかもしれませんが、頑張って書きたいと思います!

1.FizzBuzzについて

よくJSの勉強を始めて、まずProgate→ドットインストールだったりUdemyをお勧めするサイトが多いともう。

それでそのサイトのロードマップ通りにやると「あれ?これ本当に自分ちゃんと学べてる?いや、何に使うかわかんないし、何ができるんw」ってぶち当たった。

そこでメンターに相談したら「FizzBuzzやるといいよ!」って言われて調べたら...

  • 1〜100までの数字を表示させる
  • 3の倍数の数だったらFizzと表示させる
  • 5の倍数の数だったらBuzzと表示させる
  • 3と5の倍数FizzBuzzと表示させる
  • それ以外の数字はそのまま表示

プログラミング界隈ではめちゃくちゃメジャーな遊びらしい...(知らなかった)

2.FizzBuzzで何が分かるか

まず、ある程度Progateやってたらfor文とかif文が出てくる。

まーたこれがややこしくて、めちゃ苦戦した部分でも...。

このforとかifの理解をちゃんと出来てるか?とかちゃんと使えてる?ってことを知るためのものでもあるらしい。

3.FizzBuzzの解き方

色々な解き方があるらしいけど、自分が書けたのはこれでした。

<!DOCTYPE html>
<html lang="ja">
 <head>
   <meta charset="UTF-8">
   <title>FizzBuzz</title>
 </head>

 <body>
   <script>
    // 1〜100までの数字出してみる
    for(var i = 1; i <= 100; i++) {

        // 3と5の倍数はフィズバス
        if(i % 3 == 0 && i % 5 == 0)
            console.log("FizzBuzz");

        // 3の倍数はフィズ
        else if (i % 3 == 0)
            console.log("Fizz");

        // 5の倍数はバズってる
        else if (i % 5 == 0)
            console.log("Buzz");

        // 3と5の倍数以外はそのまんま数字表示
        else
            console.log(i);
    }
   </script>
 </body>
</html>

まず、どう解いたらいいのか全く分からないまま1時間ぐらい固まってました。

とりあえず一個ずつ分けてみて考えることにしたら、これ正解です!(あくまで自分の場合は)

1. 1〜100までの数字をとりあえず表示させてみる

// 1〜100までの数字出してみる
for(var i = 1; i <= 100; i++) {}

for文を使ってとりあえず1〜100までconsoleに表示させてみます。

ここまではまあまあわりかしProgateでもよくある構文だからなんとなくでも書けちゃいました。

それじゃあ、次!

2. 3の倍数でFizzを表示

// 3の倍数はフィズ
else if (i % 3 == 0)
     console.log("Fizz");

後々知ったけど、=の数は3つで良かったそうです。

3の倍数に関してはメッッッッチャ頭使った%を使用すれば倍数の表示が出来ることに気づきました!

最初&とか使ってたのはいい思い出...

if文を使って3の倍数を出せたら、あとはもう割と楽になります!

3. 5の倍数をBuzz表示

// 3と5の倍数はフィズバス
if(i % 3 == 0 && i % 5 == 0)
     console.log("FizzBuzz");

もうここは言うまでもなく、3と5の倍数を合わせただけなので論理積 (&&)で繋げただけになります。

ただ、一人でやってみてここまでかかった時間5時間

半分心が折れかける始末...。

でも!もうちょっとで終わりそうな予感がしたので頑張りました!!!

4. 3と5の倍数以外はそのままの数字の表示に

// 3と5の倍数以外はそのまんま数字表示
else
   console.log(i);

これ実際いるか要らないか悩んだ結果、なかった時がうまく表示されなかったのでつけてみました。

4.まとめ

実際にやってみてアウトプットにはいい感じの勉強になりました。

本当はHTML/CSSでフォームを使って「数字を入力したらFizz・Buzz・FizzBuzzの表示をさせる」というのをやりたかったけど、全然出来ませんでした。

今度またその表示が出来るようになったらまとめたいと思います。

私の主人が某スクールでFizzBuzzを前にやったそうですが、PC壊れかけたらしいので、もしFizzBuzzに挑戦する方はお気をつけください!

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2