while文
7.3 while文
前項で学習したfor文では、主にループする回数を指定して繰り返し処理を行っていました。
本項ではfor文とは性質の異なるループ処理構文「while文」について解説していきます。
7.3.1 while文の基本構文
while文は、指定された条件式が成立する間だけ同じ処理を繰り返します。
while文の基本構文は下記のようになります。
while文はfor文と違い、指定する式は条件式の1つだけです。while文では、「条件が成立している間」ブロック文内の処理を繰り返します。
この流れをフローチャートで表すと、図 7.3.1のようになります。
図 7.3.1 : while文のフローチャート
while文の基本的な構文の中には、繰り返しの回数をカウントする変数の初期化や、その変数へのインクリメントなどの操作は含まれていません。そのため、for文と同じようにカウンタ変数を使って繰り返し回数を制御する場合は、別に記述をする必要があります。これについては次のプログラムを作成しながら確認していきましょう。
7.3.2 while文を用いて同じメッセージを繰り返すプログラム
同じメッセージを複数回表示させるプログラムを、while文を用いて作成し、結果を確認します。
① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch7
③ 名前 :WhileLoop
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
➢ WhileLoop.java
package jp.co.f1.intro.ch7; public class WhileLoop { public static void main(String[] args) { // while文を制御する為の変数iを宣言し、1で初期化 int i = 1; while (i <= 5) { System.out.println("HelloWhileLoop!"); i++; } } }
実行結果
解説
このプログラムでは、5回の繰り返し処理を行なっています。while文の記述は10~13行目になります。この部分の流れを順に追っていきましょう。
カウンタ変数の宣言と初期化
while文に入る前に、あらかじめ8行目でカウンタ変数の宣言と初期化を行います。
6回目に条件式の判定を行った時、変数iの値は6で条件は満たされないため、while文を抜けます。
この処理をフローチャートで表すと、図 7.3.2のようになります。
図 7.3.2 : WhileLoopのフローチャート
このプログラムでは、while文を使って繰り返し処理を行いましたが、同じ処理をfor文で記述することもできます。下記のwhile文とfor文は全く同じ処理を行います。while文とfor文のどちらで書いてもかまいません。
for文とwhile文の違いfor文とwhile文は、どちらも同じ処理を作ることはできますが、for文は、主にループ回数が最初からわかっている場合に使います。それに対してwhile文の場合は、主に回数が決まっておらず、ある条件を満たす間繰り返すときによく使います。