Javaの代表的な反復処理にはfor文とwhile文があります。
反復処理はループ処理とも表現されます。
今回はループ処理の一つであるwhileの文法や特徴について解説します。
反復処理はプログラム(計画)を組むときに同じような処理が繰り返されるときに利用します。
forもwhileも基本的に条件を元に繰り返し(以下、ループ)を行います。
whileの文法
whileはforと違い、カウンタ変数などを文法上作成する必要がありません。文法上では条件を記述するだけで反復処理を行うことができます。
whileは条件に合致する(true)の時に反復処理を行います。
処理はwhileブロックである{}内に記述します。
ブロックを記述しない方法もあり、その際は1行のみがwhileの適用範囲になります。
whileの文法 (ブロック記述) |
while( 条件 ){
繰り返したい処理 ; } |
---|---|
記述例 | int count = 1;
while(count <= 100){ System.out.println(count); count++; } |
whileの文法 | while( 条件 ) 繰り返したい処理 ; |
記述例 | int count = 1;
while(count <= 100 ) System.out.println(count++); |
記述例の補足
記述例はcountが100になるまでループを行うプログラミングとなっています。今回の例ではforと同じようにカウンタ変数のような変数を設けていますが、必ずしもカウンタ変数と同じような変数を設ける必要はありません。
forとwhileの違いは覚えたばかりの時は意識しなくてもかまいませんが、プログラムに慣れてきたら意識して使い分けるようにしましょう。
このサイトではforとwhileの使い分けは練習問題の中で慣れてもらう形をとっています。
while文 サンプルプログラム
以下のプログラムを「Number17.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 10 |
class Number17{ public static void main(String[] args){ //8の段を表示するwhile文 int count = 1; while(count < 10){ System.out.println(8 + "x" + count + "=" + (count * 8)); count++; } } } |
実行例
c:\work>javac Number17.java
C:\work>java Number17
8×1=8
8×2=16
8×3=24
8×4=32
8×5=40
8×6=48
8×7=56
8×8=64
8×9=72
※実行例はコンパイルから実行までの例を表示しています。
Number17.javaの補足説明
以下は「Number17.java」のfor文
int count = 1;
while(count < 10){
System.out.println(8 + “x” + count + “=” + (count * 8));
count++;
}
whileを記述する前に変数countを1で初期化します。
whileは条件を確認して「count(1) < 10」となる為、繰り返しの処理が行われます。
以下は表示処理の部分の詳細です。(表示をクリックすると詳細説明が表示されます)
「8 + “x” + 1 + “=” + (1 * 8)」→「8 + “x” + 1 + “=” + 8」
「“8x” + 1 + “=” + 8」→「“8×1”+ “=” + 8」
「“8×1”+ “=” + 8」→「“8×1=” + 8」
「“8×1=” + 8」→「“8×1=8”」
表示処理の次にcount++が実行され、「countがインクリメントされ2」に増えます。
再度、条件を確認して「count(2) < 10」となり、繰り返しの処理が行われます。
繰り返す処理→条件…という順番でcountが10になるまでループが行われます。
(条件が「count(10) < 10」になった段階でfalseとなりループ終了)
while文 復習問題
- whileは○処理に利用される構文である。○に入る語句を選んでください。
- 解答群
- 分岐
- 順次
- 逐次
- 反復
- whileの条件に記述する演算として適切なものを選んでください。
- 解答群
- 関係演算
- インクリメント演算
- 算術演算
- デクリメント演算
- 数字を増やしていき10まで表示したい。次のプログラムの□に入る記述を選んでください。
while( □ ) System.out.println(i++); - 解答群
- i < 10
- i < 11
- i <= 9
- i <= 11
- 数字を減らしていき1まで表示したい。次のプログラムの□に入る記述を選んでください。
while( □ ) System.out.println(i--);
- 解答群
- i > 10
- i >= 11
- i > 0
- i >= 0
- お疲れ様でした。
まとめ
- whileは条件に合致する限り反復処理を行う
- forのようなカウンタ変数は必ず作成する必要はない