この章で得られるスキル:
✅ 同じ処理を効率的に繰り返すプログラムが書ける
✅ for文とwhile文を使い分けられる
✅ ループの途中で抜ける・スキップする処理が実装できる
✅ 実務でよく使うループのパターンを理解できる
Step 0: まず体験してみよう
説明の前に、まず 繰り返しがないと何が困るのか を体験しよう。
シナリオ:ゲームのスコアボードを作りたい
あなたはゲームアプリを作っている。プレイヤー10人のスコアを表示したい。
実行してみよう(繰り返しなし):
public class Main {
public static void main(String[] args) {
// プレイヤー10人のスコアを表示したい
// でも、繰り返しがないと...
System.out.println("プレイヤー1: 1200点");
System.out.println("プレイヤー2: 850点");
System.out.println("プレイヤー3: 1500点");
System.out.println("プレイヤー4: 920点");
System.out.println("プレイヤー5: 1100点");
// ... あと5人分書く必要がある
// もし100人になったら?1000人になったら?
// コードが膨大になってしまう...
}
}
問題点:
10人分のコードを手作業で書く必要がある
100人になったら100行書く必要がある
プレイヤー数が変わるたびに、コードを書き直す必要がある
途中で表示形式を変えたくなったら、全行修正が必要
では、繰り返しを使うとどうなるか?
public class Main {
public static void main(String[] args) {
// 繰り返しを使うと、わずか3行で完成!
for (int i = 1; i <= 10; i++) {
System.out.println("プレイヤー" + i + ": " + (i * 100) + "点");
}
// 100人に増えても、10を100に変えるだけ!
}
}
解決できたこと:
✅ わずか3行で10人分の処理が完成
✅ 人数が変わっても、数字を1つ変えるだけ
✅ 表示形式を変えても、1箇所直せばOK
Step 1: for文の基本を理解する
for文 は、決まった回数だけ処理を繰り返す ための構文である。
書き方
3つの部分の役割
部分 役割 例 初期化 カウンタ変数の初期値を設定 int i = 0条件式 繰り返しを続ける条件 i < 10更新 カウンタ変数をどう変化させるか i++
処理の流れ
実行してみよう:
public class Main {
public static void main(String[] args) {
// 基本的なfor文
System.out.println("0から4まで表示:");
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
System.out.println("---");
// 1から5まで表示
System.out.println("1から5まで表示:");
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
}
やってみよう:
i < 5をi < 10に変えて、0から9まで表示してみよう
i++をi += 2に変えて、2ずつ増やしてみよう
i++は「iを1増やす」という意味。i += 2は「iを2増やす」、i += 3は「iを3増やす」という意味である。
Step 2: for文のバリエーション
カウントダウンも簡単
public class Main {
public static void main(String[] args) {
// ロケット発射のカウントダウン
System.out.println("ロケット発射まで:");
for (int i = 10; i >= 1; i--) {
System.out.println(i);
}
System.out.println("発射!🚀");
System.out.println("---");
// 偶数だけ表示
System.out.println("0から10までの偶数:");
for (int i = 0; i <= 10; i += 2) {
System.out.print(i + " ");
}
System.out.println();
}
}
やってみよう:
i--を使ってカウントダウンの開始数を変えてみよう
i += 3に変えて、3の倍数を表示してみよう
Step 3: while文を理解する
while文 は、条件が成立する間、処理を繰り返す ための構文である。
繰り返し回数が事前に分からない場合に使う。
書き方
処理の流れ
for文との使い分け
for文 while文 繰り返し回数が 決まっている 繰り返し回数が 不明 「10回繰り返す」 「条件を満たすまで繰り返す」
実行してみよう:
public class Main {
public static void main(String[] args) {
// 基本的なwhile文
System.out.println("0から4まで表示:");
int i = 0;
while (i < 5) {
System.out.println(i);
i++; // これを忘れると無限ループ!
}
System.out.println("---");
// 実用例:2倍ずつ増やして100を超えるまで
System.out.println("2倍ずつ増やす:");
int num = 1;
while (num <= 100) {
System.out.println(num);
num *= 2; // 2倍にする
}
}
}
やってみよう:
i++の行をコメントアウト(//を前に付ける)して実行してみよう → 無限ループになる(ブラウザが重くなるので注意!)
num *= 3に変えて、3倍ずつ増やしてみよう
while文では、条件式を更新する処理を忘れる と、条件が永遠に成立してしまい、プログラムが止まらなくなる。
これを 無限ループ という。開発中は注意が必要である。
Step 4: while文の実践例
シナリオ:パスワード試行回数の制限
実務では、「3回まで試行可能」などの制限をかける場面がよくある。
public class Main {
public static void main(String[] args) {
// パスワード試行のシミュレーション
String correctPassword = "java123";
String[] attempts = {"password", "12345", "java123"}; // 試行するパスワード(配列は後の章で学ぶ)
int attemptCount = 0;
int maxAttempts = 3;
boolean isAuthenticated = false;
System.out.println("パスワード認証システム(最大" + maxAttempts + "回まで)");
System.out.println("---");
while (attemptCount < maxAttempts && !isAuthenticated) {
String inputPassword = attempts[attemptCount]; // 配列から取得
attemptCount++;
System.out.println(attemptCount + "回目の試行: " + inputPassword);
if (inputPassword.equals(correctPassword)) {
isAuthenticated = true;
System.out.println("✅ 認証成功!");
} else {
System.out.println("❌ パスワードが違います");
int remaining = maxAttempts - attemptCount;
if (remaining > 0) {
System.out.println("残り試行回数: " + remaining);
}
}
System.out.println();
}
if (!isAuthenticated) {
System.out.println("🚫 試行回数の上限に達しました。アカウントをロックします。");
}
}
}
このコードで学べること:
while文で「最大3回まで」の制限を実装
&&で複数の条件を組み合わせ
実務でよくある「試行回数制限」のパターン
Step 5: do-while文を理解する
do-while文 は、最低1回は必ず実行される while文である。
書き方
while文との違い
while文 do-while文 条件を 先に 判定 条件を 後で 判定 条件が最初から偽なら、1回も実行されない 条件が最初から偽でも、1回は実行される
実行してみよう:
public class Main {
public static void main(String[] args) {
// while文(条件が最初から偽)
System.out.println("【while文】");
int i = 10;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
System.out.println("→ while文は1回も実行されませんでした");
System.out.println("---");
// do-while文(条件が最初から偽)
System.out.println("【do-while文】");
int j = 10;
do {
System.out.println("j = " + j);
j++;
} while (j < 5);
System.out.println("→ do-while文は1回実行されました");
System.out.println("---");
// 実用例:メニュー表示(最低1回は表示したい)
System.out.println("【実用例:メニュー表示】");
int choice = 0;
int count = 0;
do {
count++;
System.out.println(count + "回目のメニュー表示");
System.out.println("1. 新規作成");
System.out.println("2. 開く");
System.out.println("3. 終了");
choice = (count == 2) ? 3 : 0; // 2回目で終了を選択
System.out.println("選択: " + choice);
System.out.println();
} while (choice != 3);
System.out.println("プログラムを終了します");
}
}
やってみよう:
while文とdo-while文の出力の違いを確認してみよう
do-while文は、「メニューを最低1回は表示したい」 などの場面で使われる。
実務ではwhile文の方がよく使われるが、do-while文の存在は知っておこう。
Step 6: break文とcontinue文
break文:ループを途中で抜ける
break文 は、ループを 途中で強制的に終了 する命令である。
for ( int i = 0 ; i < 10 ; i ++ ) { if ( i == 5 ) { break ; } System . out . println ( i ) ; }
continue文:現在の繰り返しをスキップ
continue文 は、現在の繰り返しを スキップして次へ進む 命令である。
for ( int i = 0 ; i < 10 ; i ++ ) { if ( i % 2 == 0 ) { continue ; } System . out . println ( i ) ; }
違いを図で理解
break continue ループを 抜ける 現在の繰り返しを スキップ ループ自体が終了 ループは続く(次の繰り返しへ)
実行してみよう:
public class Main {
public static void main(String[] args) {
// break文の例
System.out.println("【break文】");
for (int i = 0; i < 10; i++) {
if (i == 5) {
System.out.println("→ i が 5 になったのでループを終了");
break;
}
System.out.println(i);
}
System.out.println("---");
// continue文の例
System.out.println("【continue文】");
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 偶数はスキップ
}
System.out.println(i + " は奇数です");
}
System.out.println("---");
// 実用例:条件に合う値を探す
System.out.println("【実用例:条件に合う値を探す】");
System.out.println("1から100までで、最初に見つかる「7の倍数かつ偶数」:");
for (int i = 1; i <= 100; i++) {
if (i % 7 != 0) {
continue; // 7の倍数でなければスキップ
}
if (i % 2 != 0) {
continue; // 奇数ならスキップ
}
System.out.println("見つかりました: " + i);
break; // 最初の1つが見つかったら終了
}
}
}
やってみよう:
if (i == 5)をif (i == 7)に変えて、breakの動作を確認してみよう
i % 2 == 0をi % 3 == 0に変えて、3の倍数をスキップしてみよう
Step 7: ネストしたループ(二重ループ)
ネスト (入れ子)とは、ループの中にさらにループを書くことである。
基本的な二重ループ
for ( int i = 1 ; i <= 3 ; i ++ ) { for ( int j = 1 ; j <= 3 ; j ++ ) { System . out . println ( "i=" + i + ", j=" + j ) ; } }
動作:
外側のループ(i)が1回実行されるごとに、内側のループ(j)が3回実行される
合計で 3 × 3 = 9 回出力される
実用例
実行してみよう:
public class Main {
public static void main(String[] args) {
// 基本的な二重ループ
System.out.println("【基本的な二重ループ】");
for (int i = 1; i <= 3; i++) {
System.out.print("外側 i=" + i + " → 内側: ");
for (int j = 1; j <= 3; j++) {
System.out.print("j=" + j + " ");
}
System.out.println();
}
System.out.println("---");
// 実用例1:九九の表
System.out.println("【九九の表】");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print((i * j) + "\t");
}
System.out.println();
}
System.out.println("---");
// 実用例2:座席表の生成
System.out.println("【座席表(3行5列)】");
for (int row = 1; row <= 3; row++) {
System.out.print(row + "行目: ");
for (int col = 1; col <= 5; col++) {
System.out.print("[" + row + "-" + col + "] ");
}
System.out.println();
}
System.out.println("---");
// 実用例3:三角形を描く
System.out.println("【三角形】");
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
やってみよう:
九九の表を5×5に変えてみよう(i <= 5、j <= 5)
三角形の大きさを変えてみよう(i <= 10)
逆三角形を作ってみよう(j <= 6 - i)
ネストしたループは、表やパターンを作成するとき に便利である。
ただし、ループの階層が深くなりすぎると、処理が遅くなったり、コードが読みにくくなったりするので注意。
Step 8: 実践課題
これまで学んだことを組み合わせて、実践的なプログラムを作ってみよう。
課題1:FizzBuzz
仕様:
1から100までの数を表示する
3の倍数のときは「Fizz」
5の倍数のときは「Buzz」
15の倍数のときは「FizzBuzz」
public class Main {
public static void main(String[] args) {
System.out.println("FizzBuzz(1〜30):");
for (int i = 1; i <= 30; i++) {
if (i % 15 == 0) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
}
}
やってみよう:
課題2:合計と平均の計算
仕様:
public class Main {
public static void main(String[] args) {
int sum = 0;
int count = 0;
for (int i = 1; i <= 100; i++) {
sum += i; // sumにiを加算
count++;
}
double average = (double) sum / count;
System.out.println("1から100までの合計: " + sum);
System.out.println("平均: " + average);
}
}
やってみよう:
1から1000までの合計を計算してみよう
偶数だけの合計を計算してみよう(if (i % 2 == 0)を使う)
課題3:パターン描画
仕様:
* *** ***** ******* *********
public class Main {
public static void main(String[] args) {
int height = 5;
for (int i = 1; i <= height; i++) {
// 空白を表示
for (int j = 1; j <= height - i; j++) {
System.out.print(" ");
}
// アスタリスクを表示
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
やってみよう:
まとめ
この章では、Javaの 繰り返し について学んだ。
🎯 達成できたこと
✅ for文で決まった回数の処理を効率的に書けるようになった
✅ while文で条件による繰り返しが実装できるようになった
✅ break/continueでループを制御できるようになった
✅ 二重ループで複雑なパターンが作れるようになった
📚 学んだ内容
構文 使い方 使い分け for文 決まった回数繰り返す 繰り返し回数が明確なとき while文 条件を満たす間繰り返す 繰り返し回数が不明なとき do-while文 最低1回は実行する 最低1回の実行が必要なとき break ループを途中で抜ける 条件を満たしたら即終了 continue 現在の繰り返しをスキップ 特定の条件をスキップ
🚀 次のステップ
次の章では、配列 について学ぶ。
配列とループを組み合わせることで、大量のデータを効率的に処理できるようになる。
💡 よくある質問
Q1: for文とwhile文、どっちを使えばいい?
A: 繰り返し回数が 決まっている ならfor文、条件による ならwhile文を使う。
✅ for文:「10回繰り返す」「1から100まで」
✅ while文:「ユーザーが終了を選ぶまで」「条件を満たすまで」
Q2: 無限ループになったらどうすればいい?
A: ブラウザのタブを閉じるか、ページをリロードする。
開発中は、条件式が必ず偽になるか 、カウンタ変数を更新しているか を確認しよう。
Q3: i++と++i、どっちを使えばいい?
A: for文の更新部分では、どちらでも同じ結果になる。
慣習としてi++を使うことが多い。
for ( int i = 0 ; i < 10 ; i ++ ) for ( int i = 0 ; i < 10 ; ++ i )
Q4: ネストしたループで、外側のループを抜けるには?
A: breakは最も内側のループしか抜けない。外側のループも抜けたい場合は、以下の方法がある:
方法1: フラグ変数を使う
方法2: ラベル付きbreakを使う(break outerLoop;)
方法3: メソッドに分割してreturnを使う(第7章で学ぶ)
Q5: for文の初期化で、なぜ int i = 0 から始めることが多いの?
A: プログラミングの世界では、0から数え始める 慣習がある。
配列(次の章)やリストのインデックスが0から始まるため、for文も0から始めることが多い。
ただし、「1から10まで」のように自然な数え方をする場合は、int i = 1から始めても問題ない。
ループ(繰り返し)の目的として最も適切なものを選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 ループとは、同じ処理や似た処理を 繰り返し実行 する仕組みである。Javaではfor文、while文、do-while文を使ってループを実現する。条件による切り替えは条件分岐(if文)の役割である。
Javaのfor文の構文として正しいものを選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
正解 C. `for (初期化; 条件式; 更新処理) { 処理; }`
解説 for文の構文は for (初期化; 条件式; 更新処理) の順番で、各部分は セミコロン ; で区切る。カンマではない。また、丸括弧 () で囲む必要がある。
問題3. while文とdo-while文の違いを説明できる
while文とdo-while文の違いについて、正しい説明を選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
正解 C. while文は条件を先に判定し、do-while文は処理を先に実行する
解説 while文は 条件を先に判定 (前判定)するため、条件がfalseなら一度も実行されない。do-while文は 処理を先に実行 (後判定)するため、条件に関わらず 最低1回は実行される 。この違いは初回実行時に影響する。
問題4. breakとcontinueの違いを説明できる
ループ内でのbreakとcontinueの動作の違いについて、正しい説明を選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
正解 C. breakはループ全体を終了し、continueは現在の回をスキップして次の繰り返しに進む
解説 break はループを 完全に終了 してループの次の処理に進む。continue は 現在の繰り返しだけをスキップ して、次の繰り返しに進む。ループ自体は終了しない。
以下のコードのうち、無限ループになるものを選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
正解 C. `while (true) { System.out.println("Hello"); }`
解説 while (true) は条件が常に true であるため、ループが永遠に終わらない 無限ループ になる。無限ループは break 文と組み合わせて使うことがある。while (false) は条件が常にfalseなので一度も実行されない。
以下のコードの空欄を埋めて、「Hello」を5回表示するプログラムを完成させよ。
for (
;
;
) {
System.out.println("Hello");
}
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解答例 for (int i = 0; i < 5; i++)
解説 for文の3つの部分はそれぞれ以下の役割を持つ。
初期化 int i = 0: カウンタ変数iを0で初期化
条件式 i < 5: iが5未満の間、繰り返す(0,1,2,3,4の5回)
更新処理 i++: 1回の繰り返しごとにiを1増やす
以下のコードの空欄を埋めて、1から10までの数字を表示するプログラムを完成させよ。
for (
;
; i++) {
System.out.println(i);
}
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解答例 for (int i = 1; i <= 10; i++)
解説 1から10を表示するには、カウンタ変数を 1から開始 し、10以下 の間繰り返す。i <= 10 と i < 11 はどちらも同じ結果になる。
問題8. while文で条件が満たされる間繰り返せる
以下のプログラムを完成させよ。
要件 :
変数 count を1から始めて、5以下の間「count: 1」「count: 2」...と表示する
while文を使用すること
public class Main {
public static void main(String[] args) {
int count = 1;
// ここにwhile文を書いてください
}
} 解答を表示する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 解答例 :
while (count <= 5) {
System.out.println("count: " + count);
count++;
}
while文では条件式 count <= 5 がtrueの間、ループ内の処理が繰り返される。カウンタ変数の更新(count++)を忘れると無限ループ になるため注意が必要である。
以下のプログラムを完成させよ。
要件 :
do-while文を使って、変数 num の値を表示し、num を1ずつ減らす
num が0より大きい間、繰り返す
public class Main {
public static void main(String[] args) {
int num = 3;
// ここにdo-while文を書いてください
}
} ヒントを表示do-while文の構文は do { 処理; } while (条件式); である。while文と違い、条件の判定がループの最後 にある点に注目しよう。
解答を表示する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 解答例 :
do {
System.out.println(num);
num--;
} while (num > 0);
do-while文は do { } 内の処理を 最低1回実行した後 に条件を判定する。仮に num が0以下で始まっても、1回は実行される点がwhile文との違いである。末尾の while (条件式); のセミコロンを忘れないこと。
以下のコードの空欄を埋めて、iが3のときにループを終了するプログラムを完成させよ。
for (int i = 0; i < 10; i++) {
if (i == 3) {
;
}
System.out.println(i);
}
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 break 文はループを 即座に終了 する。このコードではiが0, 1, 2のときに出力が行われ、iが3になった時点でbreakが実行されてループを抜ける。iが3のときの System.out.println(i) はbreakの後にあるため実行されない。
問題11. continueで次の繰り返しにスキップできる
以下のコードの空欄を埋めて、iが3のときだけスキップして他の値を表示するプログラムを完成させよ。
for (int i = 0; i < 5; i++) {
if (i == 3) {
;
}
System.out.println(i);
}
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 continue 文は 現在の繰り返しだけをスキップ して、次の繰り返しに進む。このコードでは0, 1, 2, 4が出力され、3はスキップされる。breakと異なり、ループ自体は継続する。
以下のプログラムを完成させよ。
要件 :
二重ループを使って、九九の表(1×1から9×9まで)を表示する
各行の値はタブ文字(\t)で区切る
1行分を表示したら改行する
public class Main {
public static void main(String[] args) {
// ここに二重ループを書いてください
}
} ヒントを表示外側のループで段(1〜9)、内側のループで列(1〜9)を回す。i * j の結果をタブ文字 で区切って表示しよう。
解答を表示する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 解答例 :
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i * j + " ");
}
System.out.println();
}
外側のループ(i)が行を、内側のループ(j)が列を制御する。System.out.print() で改行せずにタブ区切りで出力し、内側のループが終わったら System.out.println() で改行する。
問題13. ループのコードを読んで何回実行されるかわかる
以下のJavaコードで、System.out.println(i) は何回実行されるか。
for ( int i = 2 ; i <= 10 ; i += 3 ) { System . out . println ( i ) ; } ヒントを表示ループ変数 i の初期値、条件式、更新処理に注目しよう。iが条件を満たす値をすべて書き出してみよう。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 ループ変数iの変化を追うと以下のようになる。
回数 iの値 i <= 10 実行 1回目 2 true 出力 2回目 5 true 出力 3回目 8 true 出力 4回目 11 false 終了
iは2から始まり、3ずつ増える(2→5→8→11)。11で条件 i <= 10 がfalseになるため、3回 実行される。
for (int i = 0; i < 10; i++) において、i++ の役割として正しいものを選べ。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 for文の3つの部分はそれぞれ以下の役割を持つ。
int i = 0:初期化 — ループ変数の初期値を設定(ループ開始前に1回だけ実行)
i < 10:条件式 — 各繰り返しの前に評価し、trueならループを続ける
i++:更新処理 — 各繰り返しの 後 にループ変数を更新する
i++ はループ本体の処理が終わった後に実行される。
問題15. for文のコードを読んで出力を予測できる
以下のJavaコードを実行した場合、何が出力されるか。
for ( int i = 1 ; i <= 3 ; i ++ ) { System . out . println ( i * 2 ) ; } 採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 ループ変数iの変化と出力を追跡する。
繰り返し iの値 i * 2 出力 1回目 1 2 2 2回目 2 4 4 3回目 3 6 6 4回目 i=4, 4 <= 3 はfalse - 終了
各繰り返しで i * 2 の結果が出力されるため、2, 4, 6 が順に表示される。
問題16. while文のコードを読んで出力を予測できる
以下のJavaコードを実行した場合、何が出力されるか。
int n = 10 ; while ( n > 1 ) { n = n / 2 ; System . out . println ( n ) ; } ヒントを表示変数 n の変化を1ステップずつ追跡してみよう。各ステップでnの値がどう変わり、条件 n > 1 がどうなるかを確認しよう。
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 変数nの変化を追跡する。
ステップ nの値(ループ開始時) n > 1 n / 2 出力 1 10 true 5 5 2 5 true 2 2 3 2 true 1 1 4 1 false - 終了
int型の除算は 小数点以下が切り捨て られる(5 / 2 = 2)。nが1になると条件 n > 1 がfalseになりループが終了する。
以下のコードの空欄を埋めて、10から1までのカウントダウンを表示するプログラムを完成させよ。
for (
;
;
) {
System.out.println(i);
}
採点する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解答例 for (int i = 10; i >= 1; i--)
解説 カウントダウンするfor文では、カウンタ変数を 大きい値から開始 し、条件式で下限を指定し、更新処理で デクリメント(i--) する。i >= 1 と i > 0 はどちらも同じ結果になる。
以下のプログラムを完成させよ。
要件 :
1から30までの数字を順に処理する
3の倍数かつ5の倍数のとき「FizzBuzz」と表示
3の倍数のとき「Fizz」と表示
5の倍数のとき「Buzz」と表示
それ以外のとき、数字をそのまま表示
public class Main {
public static void main(String[] args) {
// ここにFizzBuzzプログラムを書いてください
}
} ヒントを表示条件の順番に注意しよう。「3の倍数かつ5の倍数」の判定を 最初に 行う必要がある。% 演算子で余りが0かを判定する。
解答を表示する 諦めて解答を表示する(達成済みステータスを外します)
解答・解説を見る
解説 解答例 :
for (int i = 1; i <= 30; i++) {
if (i % 3 == 0 && i % 5 == 0) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
FizzBuzzでは 判定の順序 が重要である。「3の倍数かつ5の倍数」の判定を最初に行わないと、先に「3の倍数」に該当してしまい「FizzBuzz」が出力されない。15の倍数(15, 30)が「FizzBuzz」になることを確認しよう。