while文

while文は、指定した条件が真の間、繰り返し処理をします。ある条件を比較した結果により、繰り返し処理をするか、しないかを決定します。回数を指定する方法や、集合をループ(繰り返す)する方法と違って、繰り返し処理を抜け出るような記述をしないと、永遠にループ(無限ループ)するので、注意します。

while文の書式
while(継続条件式){
  処理;
}

while文

例:
 while(num == 1){
   num = 2;
 }

○ ファイル

次のようにファイルを作成してください。

ファイル名 WhileTest.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

WhileTest.java

  1. import java.io.*;
  2. class WhileTest{
  3.     public static void main(String[] args) throws Exception{
  4.         //データを入力する準備をする
  5.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  6.         //ループ制御用の変数を準備する
  7.         boolean flag = true;
  8.         //ループ制御用の変数をもとにループする
  9.         while(flag){
  10.             //データを入力する
  11.             System.out.print("データを入力:");
  12.             String str = br.readLine();
  13.             //「E」が入力されたら終了とする
  14.             if(str.equals("E")){
  15.                 flag = false;
  16.             }
  17.             //入力内容を表示する
  18.             System.out.println("「" + str + "」が入力されました。");
  19.         }
  20.     }
  21. }

○ コンパイルと実行

C:¥work>javac WhileTest.java
C:¥work>java WhileTest
データを入力:a
「a」が入力されました。
データを入力:b
「b」が入力されました。
データを入力:E
「E」が入力されました。

C:¥work>

○ フローチャート

while文フローチャート

○ 解説

9行目では、繰返しを制御する変数を用意しています。初期値として「true」をセットしています。12行目では、変数flagを判定しています。条件が「true」であれば繰り返し処理が実行されますが、変数flagには「true」がセットされているので、繰り返し処理がされます。

15行目では、キーボードから文字列を入力しています。18行目では、入力した文字列が「E」かどうかを判定しています。「E」の場合は、変数flagに「false」をセットしています。そのため、ループの処理が終了し、再び12行目の繰り返し処理の判定をするときに、変数flagが「true」なら処理を継続し、「false」なら繰り返しが終了します。

今回のサンプルは、キーボードで「E」が入力されるまで入力と表示が繰り返されます。

前へ   次へ