【Java】while文の書き方と使い方の基本
この記事では、Javaのwhile文について、繰り返し処理の基本から基本的な書き方、動作例までを解説します。開発環境の基礎知識や、無限ループの注意点も学び、具体的なサンプルコードで偶数判定プログラムを通して実践的な理解を深められます。
開発環境
- OS: Windows10
- Editor: Visual Studio Code
- Java: 22.0.2
Javaのwhile文とは
条件が真である限り、ループ内のコードブロックを繰り返し実行します。
Javaのwhile文は、プログラムの中で同じ処理を何度も繰り返したいときに使う「繰り返し文(ループ文)」の一つです。
具体的には、while文の後に指定された「条件」が正しい(「真」である)間は、while文の中にある一連の処理(「コードブロック」)を何度も実行し続けます。
この条件が正しくなくなった(「偽」になった)時点で、while文の繰り返しは終わり、次の処理へと進みます。
while文の基本的な書き方
1while (条件式) { 2 // 繰り返したい処理(コードブロック) 3}
条件式:真(true)または偽(false)となる式を記述します。{ ... }:条件式が真である限り、繰り返し実行されるコードブロックです。
while文の動作例
例えば、変数countが5未満の間、countの値を画面に表示し、countを1ずつ増やすプログラムを考えてみましょう。
1int count = 0; // countを0で初期化します 2 3while (count < 5) { // countが5より小さい間、繰り返します 4 System.out.println("現在のカウント: " + count); // countの値を表示します 5 count++; // countを1増やします 6} 7 8System.out.println("ループが終了しました。最終カウント: " + count); // ループ終了後のメッセージです
この例では、count < 5という条件式が真の間、while文の中の処理が繰り返されます。
countが0, 1, 2, 3, 4のときに処理が実行され、countが5になった時点でcount < 5は偽となるため、ループは終了します。
無限ループについて
もしwhile文の条件式が常に真となる場合、プログラムはループを永遠に繰り返し、終了しなくなってしまいます。これを「無限ループ」と呼びます。無限ループは、意図しないバグの原因となることがありますので、条件式がいつか偽になるように、ループ内で条件に影響を与える処理(上記の例ではcount++など)を記述することが重要です。
while文は、特定の条件が満たされ続ける限り処理を繰り返したい場合に非常に便利な構文です。
基本構文
while文は、特定の条件が真(true)である限り、同じ処理を繰り返し実行するために使用する構文です。
まず、whileの後に続く丸括弧 () の中に「条件」を記述します。この「条件」は、真(true)か偽(false)のどちらかで評価される式です。
次に、中括弧 {} で囲まれた部分が「繰り返し実行されるコード」です。このブロック内のコードは、条件が真である限り何度も実行されます。
while文の動作の流れは以下のようになります。
- 最初に、丸括弧内の「条件」が評価されます。
- もし条件が真(true)であれば、中括弧
{}内の「繰り返し実行されるコード」が実行されます。 - コードの実行が終わると、再び「条件」が評価されます。
- この「条件の評価」と「コードの実行」は、条件が真である限り繰り返されます。
- 条件が偽(false)になった時点で、
while文の繰り返し処理は終了し、プログラムはwhile文の次の処理へ進みます。
例えば、「ユーザーが正しい入力を行うまで再入力を促し続ける」といった処理や、「ある値が特定の範囲に収まるまで計算を続ける」といった場面でwhile文が活用されます。
注意点として、もし「条件」が常に真(true)のままであると、繰り返し処理が永遠に終わらない「無限ループ」が発生してしまう可能性があります。プログラムが無限ループに陥らないように、中括弧内のコードで「条件」を変化させ、最終的に偽(false)になるように調整することが重要です。
1while (条件) { 2// 繰り返し実行されるコード 3}
サンプルコード
java/chapter09/WhileExample.java
このコードは、Java言語で書かれたプログラムです。1から20までの数値の中から、偶数だけを選んで画面に表示するという処理を行います。システムエンジニアを目指す上で基本的な「繰り返し処理」と「条件分岐」を学ぶことができます。
まず、プログラムの全体構造から見ていきましょう。
public class WhileExample { ... }は、このプログラムがWhileExampleという名前のクラスであることを示しています。Javaのプログラムは基本的にクラスとして記述されます。public static void main(String[] args) { ... }は、このプログラムが実行されるときに、最初に処理が開始される場所(エントリーポイント)を示しています。
次に、具体的な処理の内容を上から順に説明します。
-
int count = 1;- これは「変数(へんすう)」を宣言し、初期値を設定する行です。
intは、整数(小数点のない数字)を扱うための型(データの種類)です。countは、その変数に付けられた名前です。この変数を使って、1から20までの数を数えていきます。= 1は、変数countの最初の値が1であることを示しています。
-
while (count <= 20) { ... }- これは「whileループ」と呼ばれる繰り返し処理の構文です。
whileの後ろにあるカッコ( )の中の条件式count <= 20が「真(true)」である限り、{ ... }の中の処理を繰り返し実行します。count <= 20は、「変数countの値が20以下である」という意味です。つまり、countが1から20の間である限り、繰り返し処理が続きます。
-
if (count % 2 == 0) { ... }- これは「if文」と呼ばれる条件分岐の構文です。
ifの後ろにあるカッコ( )の中の条件式count % 2 == 0が「真(true)」である場合にのみ、{ ... }の中の処理を実行します。count % 2は、「変数countの値を2で割ったときの余り」を計算する「剰余(じょうよ)演算子」です。- 例えば、
4 % 2は0です(4を2で割ると余りは0)。 5 % 2は1です(5を2で割ると余りは1)。
- 例えば、
== 0は、「左側の値が0と等しい」かどうかを比較する「等価(とうか)演算子」です。- この条件式全体
count % 2 == 0は、「countの値を2で割った余りが0と等しい」という意味になります。これはつまり、「countが偶数である」ことを判定しています。
-
System.out.println(count);- この行は、画面(コンソール)に変数の値を出力する命令です。
System.out.println()は、カッコの中の情報を表示した後、改行を行います。if文の条件が真、つまりcountが偶数である場合にのみ、そのcountの値が画面に表示されます。
-
count++;- この行は、変数
countの値を1だけ増やす「インクリメント演算子」です。 - これは
count = count + 1;と同じ意味です。 whileループの中でcountの値を増やすことで、いずれcount <= 20の条件が「偽(false)」になり、無限にループが繰り返されることを防ぎます。
- この行は、変数
このプログラムは、count が1から始まり、ループの中で偶数だけを判定して表示し、count が20を超えるまで繰り返すことで、最終的に2から20までの偶数が順番に表示されるという流れになっています。このように、プログラムは上から下へ、そしてループや条件分岐によって処理の流れを制御しながら実行されます。
WhileExample.java1public class WhileExample { 2 public static void main(String[] args) { 3 // 1から20までの数値のうち、偶数のみを表示する練習問題 4 int count = 1; 5 while (count <= 20) { 6 if (count % 2 == 0) { 7 System.out.println(count); 8 } 9 count++; 10 } 11 12 } 13} 14
おわりに
この記事では、Javaのwhile文について、条件が真の間だけ繰り返し処理を行う基本的な書き方と動作の仕組みを学習しました。繰り返し処理を適切に終了させるために、ループ内で条件に影響を与える処理が不可欠であることや、無限ループの注意点も理解できたことと思います。また、Windows10やVisual Studio Codeといった開発環境の基礎知識を確認しながら、偶数判定プログラムのサンプルコードを通して、具体的なwhile文の活用方法を体験しました。今回学んだ繰り返し処理の知識は、システムエンジニアとして多様なプログラムを作成する上で非常に重要な基礎となるため、ぜひ今後の学習や実践に役立ててください。