while文
while文は、指定した条件が真の間、繰り返し処理をします。ある条件を比較した結果により、繰り返し処理をするか、しないかを決定します。回数を指定する方法や、集合をループ(繰り返す)する方法と違って、繰り返し処理を抜け出るような記述をしないと、永遠にループ(無限ループ)するので、注意します。
while文の書式 |
---|
while(継続条件式){ 処理; } |
例:
while(num == 1){
num = 2;
}
○ ファイル
次のようにファイルを作成してください。
ファイル名 | WhileTest.java |
---|
○ プログラム
次のようにプログラムを入力してください。
WhileTest.java
- import java.io.*;
- class WhileTest{
- public static void main(String[] args) throws Exception{
- //データを入力する準備をする
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- //ループ制御用の変数を準備する
- boolean flag = true;
- //ループ制御用の変数をもとにループする
- while(flag){
- //データを入力する
- System.out.print("データを入力:");
- String str = br.readLine();
- //「E」が入力されたら終了とする
- if(str.equals("E")){
- flag = false;
- }
- //入力内容を表示する
- System.out.println("「" + str + "」が入力されました。");
- }
- }
- }
○ コンパイルと実行
C:¥work>javac WhileTest.java
C:¥work>java WhileTest
データを入力:a
「a」が入力されました。
データを入力:b
「b」が入力されました。
データを入力:E
「E」が入力されました。
C:¥work>
○ フローチャート
○ 解説
9行目では、繰返しを制御する変数を用意しています。初期値として「true」をセットしています。12行目では、変数flagを判定しています。条件が「true」であれば繰り返し処理が実行されますが、変数flagには「true」がセットされているので、繰り返し処理がされます。
15行目では、キーボードから文字列を入力しています。18行目では、入力した文字列が「E」かどうかを判定しています。「E」の場合は、変数flagに「false」をセットしています。そのため、ループの処理が終了し、再び12行目の繰り返し処理の判定をするときに、変数flagが「true」なら処理を継続し、「false」なら繰り返しが終了します。
今回のサンプルは、キーボードで「E」が入力されるまで入力と表示が繰り返されます。