前回の記事(Java超入門!「for文」で処理を繰り返しまくろう! | ToolDocs )では、for文を使って「回数が決まっている繰り返し」について学んだよね!今回は、**「回数が決まってないけど、ある条件を満たすまで繰り返したい!」**ってときに大活躍するwhile文とdo-while文を紹介するよ。
while文は「〜の間ずっと繰り返す」
while文は、「条件がtrue(真)の間は、中の処理をずーっと繰り返す」っていうのが特徴なんだ。
イメージとしては、「お腹がいっぱいになるまで食べ続ける」みたいな感じ!
Java
// while文の書き方
while (条件式) {
// 条件式がtrueの間、繰り返される処理
}
実際に例を見てみよう!
例1:100になるまで足し続ける計算
Java
public class WhileLoopExample {
public static void main(String[] args) {
int sum = 0;
int num = 1;
// sumが100未満の間、繰り返す
while (sum < 100) {
sum += num; // sumにnumを足す
num++; // numを1増やす
System.out.println("現在の合計: " + sum + ", 次に足す数: " + num);
}
System.out.println("合計が100以上になりました。最終的な合計: " + sum);
}
}
このコードでは、sumが100未満の間ずっと、sumにnumを足していく処理を繰り返しているよね。sumが100以上になったら、繰り返しが終了するよ。

paizaで実行した結果
do-while文は「最低1回は実行してから条件チェック」
do-while文は、while文と似ているんだけど、ちょっと違う点があるんだ。それは、**「まず中の処理を1回実行してから、条件をチェックする」**っていうこと!
イメージとしては、「とりあえず一口食べてみて、美味しかったら食べ続ける」みたいな感じかな?
Java
// do-while文の書き方
do {
// まず1回実行される処理
} while (条件式); // その後、条件式がtrueの間、繰り返される
これも例を見てみよう!
例2:ユーザーが「やめる」と入力するまで続ける
Java
import java.util.Scanner; // 入力を受け取るための準備
public class DoWhileLoopExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // スキャナーを作成
String input;
do {
System.out.println("何か入力してください(「やめる」と入力すると終了します):");
input = scanner.nextLine(); // ユーザーの入力を読み込む
System.out.println("あなたは「" + input + "」と入力しました。");
} while (!input.equals("やめる")); // 入力が「やめる」ではない間、繰り返す
System.out.println("プログラムを終了します。");
scanner.close(); // スキャナーを閉じる
}
}
このコードでは、まず「何か入力してください」と表示されて、ユーザーが入力するまで待つよね。そして、入力された文字が「やめる」じゃなかったら、また同じ処理を繰り返すんだ。もし最初から「やめる」と入力しても、最低1回はメッセージが表示されるのがdo-while文のポイントだよ!

paizaで実行した結果
while文とdo-while文の使い分けってどうするの?
while文:**「条件を満たさないと、そもそも1回も実行したくない」**ときに使うのがおすすめ。例えば、ファイルの読み込みで「ファイルが存在しないなら、何も処理しない」とかね。do-while文:**「最低1回は実行してから、条件によって繰り返すかどうか決めたい」**ときに使うのがおすすめ。例えば、ユーザーからの入力を受け取って、その入力が正しいかチェックしながら繰り返す、みたいな場面で便利だよ。
まとめ
今回は、条件に応じて繰り返しを行うwhile文とdo-while文について学んだね!
while文:条件がtrueの間、処理を繰り返す。最初に条件をチェックする。do-while文:最低1回は処理を実行し、その後に条件をチェックして繰り返すかどうかを決める。
どちらもプログラムを書く上でめちゃくちゃよく使うから、色々な例を試して、しっかりマスターしてね!


コメント