【初心者向けJavaScript入門】FizzBuzzで学ぶプログラミング思考

FizzBuzzで学ぶプログラミング思考 の画像 javascript

初めてプログラミングに触れる方やこれからjavascriptを学んでいこうとする方へ、基本的な構文や問題を通して理解を深めることができます。。この記事では、”FizzBuzz” というシンプルな問題を通じて、JavaScriptの基本構文とプログラミング的思考の基礎を楽しく学んでいきましょう。

はじめに:FizzBuzzとは?

「1から30までの数字を順番に出力する」
ただし、以下のルールに従います。

  • 3の倍数のとき → 「Fizz」と出力

  • 5の倍数のとき → 「Buzz」と出力

  • 両方の倍数(15など)のとき → 「FizzBuzz」と出力

  • それ以外 → 数字をそのまま出力

ポイント①:なぜこんな問題?

・複数の条件分岐(if 文)や「繰り返し処理(ループ)」を組み合わせる練習になる

・「余り(%)演算子」の使い方を理解できる

・面接や教材で古くから使われるスタンダード問題なので、解法パターンを押さえておくと様々な言語で応用が効きます。

この問題は、世界中のエンジニア採用試験やコーディング面接でも登場する「最もシンプルで奥深プログラミング課題」のひとつです。初めてプログラミングに触れる方やこれからjavascriptを学んでいこうとする方へ、基本的な構文や問題を通して理解を深めることができます。。この記事では、”FizzBuzz” というシンプルな問題を通じて、JavaScriptの基本構文とプログラミング的思考の基礎を楽しく学んでいきましょう。

今回の正しいFizzBuzzコード

function Fizz(i){
console.log(i , "Fizz");
}

function Buzz(i){
console.log(i , "Buzz");
}

function FizzBuzz(i){
console.log(i , "FizzBuzz");
}

for(let i = 1; i <= 30; i++){
if(i % 3 === 0 && i % 5 === 0){
FizzBuzz(i);
}else if(i % 3 === 0){
Fizz(i);
}else if(i % 5 === 0){
Buzz(i);
}else {
console.log(i);
}
}
実行結果

【javascriptの基本構文】コードを分解してみよう

ここからは「どのように動いているのか?」をひとつずつ見ていきます。

変数宣言
  • let は「変数を宣言するキーワード」で再代入可能。
  • constはletと同じく、変数を宣言するキーワード」で再代入不可。
  • let i = 1 で「i に 1 を入れる」という意味になり、「i」の部分に関しては、任意の名称をつけることが可能。 例)let FizzBuzzX = 1;
for 文(ループ)
  • i = 1 からスタート
  • i <= 30 のあいだ繰り返し
  • i++ は「i を 1 ずつ増やす」という意味
  • 例えるなら、お菓子を 1 個ずつ箱に詰めていくイメージです。

if 文(条件分岐)
  • 条件に応じて処理を実行する
  • && は「かつ(AND条件)

剰余演算子
  • % は「割ったあとの余り」を返す演算子
  • たとえば 7 % 3 は「7 を 3 で割った余り」なので 1
  • FizzBuzz では、「割り切れた(余り 0)とき」を条件分岐に使います

関数の定義と呼び出し

  • function は「関数を定義するキーワード」
  • Fizz(i)i は「この関数に渡される値(引数)」
  • 関数の中は「この処理をまとめる」という意味
  • 呼び出しFizz(3) のように書くと、console.log(3, "Fizz") が実行される
なぜ関数を使うの?
  • 同じ処理を何度も書かず、名前だけで呼び出せる
  • 「何をするか」を名前で表せるのでコードが読みやすくなる

上記のjavascriptの基本構文を使うことで、可読性良くコードを記述することができるようになります。

まとめ

  • FizzBuzz は非常にシンプルですが、ループ・条件分岐・関数・演算子など基本を一通り使う良い練習問題です。
  • JavaScript の書き方を身につけつつ、「プログラミング的思考」を鍛えられます。
  • この考え方は他の言語(Python、Java、C#、Ruby、PHP、Go など)でもほぼ共通なので、最初の土台としてぜひ習得しましょう!

コメント

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