・while文


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

主に指定した回数だけ繰り返し目的で利用されるfor文に対して、条件が満たされている間は何度でも繰り返す目的で利用されるのがwhile文です。書式は次の通りです。
while (条件式){
  実行する文1;
  実行する文2;
  ...
}
while文では条件式を評価しtrueだった場合には「{」から「}」のブロック内に記述された文を実行します。条件式は関係演算子及び論理演算子などを使って記述します。そしてブロック内の処理が一通り終わると改めて条件式を評価します。そしてまたtrueだった場合にはブロック内の文の実行し、falseだった場合にはwhile文を終了します。
繰り返しで実行される文が一つだった場合には「{」と「}」を省略して次のように記述することもできます。
while (条件式)
  実行する文;
このようにwhile文はfor文と同じように使用することができます。for文とは異なり初期化式や変化式がありませんので条件式で変数を使用する場合はwhile文よりも前で記述する必要がありますし条件式を変更するにはブロック内で自分で記述する必要があります。
ではwhile文はどのような場合に使用するのかと言えば繰り返し回数が決まっておらず、条件式で評価する値が不規則に変わるようなものです。簡単な例で言えばユーザーからパスワードなどを入力してもらい一致するまで繰り返し入力を行うような場合やテキスト文書などを読み込み、含まれていた文書を1行ずつ処理するような場合などです。ただ、for文と同じような目的でwhile文を使用しても構いません。回数が決まっている時にはfor文で回数が未定の場合はwhile文というのはあくまで目安です。
では簡単な例を使いwhile文がどのように処理されるのかを確認してみます。
int i = 0;

while (i < 2){
  System.out.println("i = " + i);
  i++;
}
この場合は次のような処理の流れとなります。
 1)i = 0;
 2)条件式を評価。iは2よりも小さいので繰り返しを実行
 3)「i = 0」を画面に出力
 4)i++;
 5)条件式を評価。iは2よりも小さいので繰り返しを実行
 6)「i = 1」を画面に出力
 7)i++;
 8)条件式を評価。iは2よりも小さくないので繰り返しを終了
for文と同じくwhile文ではまず最初に条件式が評価されます。もしも条件式がいきなりfalseとなった場合には繰り返し処理は実行されません。条件式がtrueだった場合にはwhile文の「{」から「}」までのブロック内の文を順に実行していきます。
ブロック内の最後の文を実行したら1回目の繰り返しが終了です。そしてwhile文の最初に戻り改めて条件式を評価します。trueなら再度ブロック内の文を実行し、falseだった場合にはwhile文の次の文へ処理が移ります。
基本的にfor文と同じですが条件式を変化させるのはブロック内で記述する必要があることを忘れないようにして下さい。




わからないところがあったら以下に書き込んでください。
  • test -- (test) 2010-12-10 22:01:03
  • テスト
    -- (test) 2010-12-10 23:00:34
  • hosei -- (HOSEI) 2011-01-31 14:10:34
  • test -- (名無しさん) 2011-01-31 14:10:53
名前:
コメント:

すべてのコメントを見る