1. 15 のとき FizzBuzz を返す (3 と 5 の両方で割り切れる)
  2. 9 のとき Fizz を返す (3 で割り切れる)
  3. 10 のとき Buzz を返す (5 で割り切れる)
  4. 7 のとき 7 を返す (どちらでも割り切れない)
  5. 1 のとき 1 を返す (最小ケース)
  6. 30 のとき FizzBuzz を返す (15 の倍数)
コース一覧
Java入門:基礎文法編
FizzBuzz の判定部分

Java入門:基礎文法編

変数、制御構文、メソッド、クラス、継承、インターフェースなど Java とオブジェクト指向の基礎を、コードを書きながら学べる無料コースです。プログラミング初学者や、業務システム開発で Java を扱う必要がある社会人を対象としています。約 17 時間 (1 日 30 分 × 34 日) で 69 レッスンを修了でき、修了後は Spring などのフレームワーク学習や Java 認定試験への準備が無理なく進められます。

1
Hello, Java
01. はじめての Java プログラム5分
02. 複数行の出力5分
03. 変数を使った自己紹介5分
04. コメントを書く5分
05. 第 1 章まとめクイズ5分
2
変数と演算
01. 変数を宣言する5分
02. データ型の使い分け5分
03. 変数とデータ型クイズ5分
04. 四則演算と剰余5分
05. 税込価格を計算する5分
06. インクリメントとデクリメント5分
07. 比較演算子5分
08. 論理演算子5分
09. 演算子の優先順位5分
10. 文字列の連結5分
11. 型変換 (キャスト)5分
12. 第 2 章 まとめクイズ5分
3
条件分岐
01. if 文の基本5分
02. if-else 文5分
03. else if で複数分岐5分
04. 成績判定プログラム12分
05. うるう年を判定する5分
06. switch 文5分
07. 三項演算子5分
08. じゃんけんの勝敗判定15分
09. FizzBuzz の判定部分5分
10. 第 3 章 まとめクイズ5分
4
繰り返し
01. for 文の基本5分
02. 1 から N までの合計5分
03. 九九の段を作る5分
04. while 文5分
05. カウントダウン5分
06. do-while 文5分
07. 二重ループ5分
08. break と continue5分
09. FizzBuzz 完成5分
10. 繰り返しクイズ5分
11. 第 4 章 まとめクイズ5分
5
メソッド
01. メソッドを定義する5分
02. 引数を受け取るメソッド5分
03. 戻り値を返す5分
04. 複数の引数を取るメソッド5分
05. メソッドのオーバーロード5分
06. メソッドクイズ5分
07. BMI を計算するメソッド5分
08. 第 5 章 まとめクイズ5分
6
配列
01. 配列の基本5分
02. 配列の要素にアクセス5分
03. 配列を for で走査5分
04. Javaで配列の合計・平均を求める方法(forループ)5分
05. 配列の平均5分
06. 配列の最大値5分
07. 配列の線形探索12分
08. 拡張 for ループ5分
09. 配列クイズ5分
10. 第 6 章 まとめクイズ5分
7
クラスとオブジェクト
01. クラスを定義する5分
02. クラスにフィールドを持たせる12分
03. クラスにメソッドを定義する5分
04. インスタンスを作る5分
05. コンストラクタ5分
06. this キーワード5分
07. カプセル化 (private と getter)12分
08. Person クラスを作る5分
09. Product クラスで税込価格15分
10. 銀行口座クラス15分
11. toString のオーバーライド5分
12. クラスとオブジェクト クイズ5分
13. Java 入門 最終クイズ5分

FizzBuzz の判定部分

上から書くと、重なった数が下の条件に届かない

3 の倍数なら Fizz、5 の倍数なら Buzz、両方なら FizzBuzz。ルールは 3 行で言い切れます。急所は、両方に当てはまる数が存在する ことです。

条件が重なっているとき何が起きるかを、別の数字で確かめます。2 の倍数なら Tick、7 の倍数なら Tock、両方なら TickTock というルールを、思いついた順に書いた場合です。

Java

if (n % 2 == 0) { return "Tick"; } else if (n % 2 == 0 && n % 7 == 0) { return "TickTock"; }

14 を渡すと "Tick" が返ります。14 は 2 でも 7 でも割り切れるのに、最初の枝で確定してしまい、下の枝には永久に届きません。"TickTock" が返る日は来ないので、この行は書いた意味がなくなっています。

else if の連鎖は、上から順に見ていって最初に当たった枝だけを実行します。範囲が重なるときは、当てはまる数が少ないほうを先に 置きます。この例なら、2 つの枝を入れ替えるだけで直ります。

「両方」は == 0 を 2 回書く

&& の左右には boolean が必要です。余りをそのまま置くことはできません。

Java

if (n % 2 && n % 7) { // int を真偽値としては扱えない

「2 で割った余りが 0」まで書き切って、はじめて true か false かを聞く 1 つの問いになります。== 0 は 2 つとも必要です。

ちなみに n % 2 == 0 && n % 7 == 0 は n % 14 == 0 と書いても同じ結果です。2 と 7 に 1 以外の共通の約数が無いので、両方で割り切れることと、掛け合わせた数で割り切れることが一致します。

数をそのまま返せない

このメソッドの戻り値は String です。どのルールにも当てはまらない数は、数字のままではなく文字列にして返す必要があります。

Java

String s = String.valueOf(42); // "42"

return n; と書くと int cannot be converted to String で止まります。String.valueOf(n) を通してください。

解説

4 つの枝を if だけで並べても動きます。ただし else if でつなぐと「ここまでの条件はどれも外れた」という情報が読み手に伝わるので、後から読む人の負担が減ります。

やってみよう

fizzbuzz(int n) を完成させてください。今回は数を 1 つ渡されたときの答えを返すところまでです。

  1. 4 つの答えを、当てはまる数が少ない順に並べ替える
  2. 「3 でも 5 でも割り切れる」を && で書き、いちばん上に置く
  3. 残りの 2 つを else if で続け、最後の else で数を文字列にして返す
  4. 実行して 15 9 10 7 1 の 5 件を通す

通ったら 30 や 45 のような 15 の倍数も呼んでみてください。ここが "Fizz" になっていたら、並べ替えがまだ効いていません。上の 14 の例とまったく同じことが起きています。

要件

  1. クラス名は Solution、メソッド名は fizzbuzz、引数は int n 1 つ、戻り値の型は String
  2. 判定は FizzBuzz → Fizz → Buzz → それ以外、の順で行うこと (FizzBuzz を最初に判定しないと 15 のときに Fizz が返ってしまう)
  3. どれにも当てはまらないときは String.valueOf(n) のように n を文字列に変換して返すこと

入出力例

fizzbuzz(15) → "FizzBuzz" fizzbuzz(9) → "Fizz" fizzbuzz(10) → "Buzz" fizzbuzz(7) → "7" fizzbuzz(1) → "1" fizzbuzz(30) → "FizzBuzz"

ヒント

「割り切れる」は剰余演算子 `%` を使い、`n % 3 == 0` のように余りが `0` かどうかで判定します

`3` でも `5` でも割り切れる条件は `n % 3 == 0 && n % 5 == 0` と書きます。`&&` の左右にはそれぞれ完結した `boolean` 式を書く必要があるので、`==` を省略しないでください

`int` を `String` に変換するときは `String.valueOf(n)` を使います。`return n;` のように `int` をそのまま返すと型エラーになります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • 第 3 章 まとめクイズ

    第 3 章で学んだ if / else if / switch / 三項演算子 / うるう年 / FizzBuzz を 1 問の 4 択クイズで総復習する章末まとめ。

  • for 文の基本

    決まった回数を繰り返したいときの相棒、for 文を学ぼう。初期化・条件・更新の 3 つの式の意味を理解する。

  • メソッドを定義する

    Java の処理をまとめて名前を付ける仕組み、メソッドの定義と呼び出しを学ぼう。

  • 配列の基本

    Java の配列の宣言、長さの取り方、インデックスでの要素アクセスを学び、最初の要素を返すメソッドを書いてみよう。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • メソッドクラスに属する関数
  • 戻り値呼び出し元への返答を表す点線矢印
  • クラスデータと振る舞いを束ねる単位
  • 引数位置引数=順番で渡す。
main.java
学習モード
エディタを読み込んでいます

メモ

FizzBuzz の判定部分

⌘S で保存