繰り返し(while文)

参考:教科書 p155-157

同じ処理を繰り返し行うことを繰り返し処理(ループ)と呼ぶ。 Java言語では、for文とwhile文を使って繰り返しを行うことができる。 ここでは、while文を演習する。
while文を使うと「条件が成り立つ限り繰り返し処理Aを実行し、 成り立たなければ繰り返し処理を終了する」といったことをプログラムとして書ける。

while文

while文の構文は以下である。
参考:教科書 p155

while ( 式 ) 文

ただし、式の計算結果は論理値(trueまたはfalse)でなければいけない。

while文の流れ図(模式図)は、以下である。 ※ループ端を利用する方法もあるが、ここでは述べない。
図1 繰り返し
while文

菱型の図形が条件式(while)を表し、この中に条件を表すを示す。
評価結果が true ならば true の矢印をたどりを実行する。
評価結果が false ならば false の矢印をたどり処理を続行する。

while文の例1
int i = 0;                  //i を 0 で初期化
while (i < 10) {            //i が 10より小さいならばブロックを処理
    System.out.println(i);  //i を表示
    i=i+1;                  //i を一つ増やす
}                           //while に戻る
a はwhileループの前に0で初期化され、a が 10 より小さい限りブロック処理をループする。
ブロック処理では、a が毎回1増えるので、ブロックは10回呼び出され、a が 10 になった時点で、whileの条件が偽(false)になり、処理はブロックを飛ばして継続される。

上記出力結果は以下になる。
0
1
2
3
4
5
6
7
8
9

while文とfor文の関係

while文とfor文は、機能的に同じであるため、 どちらを使っても同じループ処理を記述することができる。
while文for文
ループ変数初期化 ;
while ( 繰り返し条件 ) {
  繰り返し処理 ;
  ループ変数変更 ;
}
for(ループ変数初期化 ; 繰り返し条件 ; ループ変数変更 ) {
  繰り返し処理 ;
}
while文例for文例
int i = 0;
while ( i < 100 ) {
  println(i);
  i++;
}
for(int i = 0; i < 100 ; i++ ) {
  println(i);  
}

練習課題

  1. 非負整数nを入力し、1からnまでの和と平均を出力するプログラムをwhile文で書け.
  2. 非負整数nを入力し、入力された n に対して、以下の式の結果を出力するプログラムをwhile文で書け.
     2   2            2    2
    1 + 2 + ... + (n-1) + n
    
  3. while文の2重ループを使って、掛け算の九九の一覧を次の通り表示するプログラムを書け.

東京情報大学情報システム学科
マッキン ケネスジェームス(Ken Mackin)
<mackin>