while文を使った繰り返し処理

指定した条件が満たされている間はずっと繰り返し処理を行いたいときに利用するのが while 文です。ここでは C 言語で while 文を使った繰り返し処理を行う方法について解説します。

(Last modified: )

while文を使った繰り返し処理

繰り返し処理を行う別の方法として while 文について解説します。 while 文の書式は次のようになっています。

while (条件式)
  実行する処理;

実行する処理が複数ある場合は実行する範囲を {} で囲んで指定します。

while (条件式){
  実行する処理1;
  実行する処理2;
  実行する処理3;
  ....
}

while 文では条件式を評価し真の間は繰り返し処理を行います。 for 文とは異なり条件式で使われる変数の値をどのように変化させるかは指定していません。その為、実行される処理の中で別途記述する必要があります。(変化させなければ無限ループとなります)。

for 文は指定した回数だけ繰り返しを実行する場合に利用されることが多いですが、 while 文は条件が満たされるまで繰り返し処理を継続するような場合に利用されることが多いです。例えばパスワードを入力してもらい一致するまで繰り返し処理を行う場合などには「while」文が適しています。

パスワードを入力してもらう

while (パスワードが正しいかどうか判別){
  パスワードを入力してもらう
}

上記の場合には正しいパスワードが入力されるまで繰り返しは継続することになります。

実際には次のように記述します(今までの学習範囲でサンプルを作成するためfor文の場合と似たようなサンプルとなります)。

int i = 0;

while (i < 2){
  printf("こんにちは\n");
  i++;
}

上記は次のような動作を行います。

変数「i」に「0」を格納する

変数「i」の値が「2」より小さいかどうか評価する = 真
「こんにちは」を出力する
変数「i」の値に「1」を加えて「1」にする

変数「i」の値が「2」より小さいかどうか評価する = 真
「こんにちは」を出力する
変数「i」の値に「1」を加えて「2」にする

変数「i」の値が「2」より小さいかどうか評価する = 偽
繰り返し処理終了

while 文では for 文と同じく 1 回目の繰り返し処理が行われるよりも前に条件判断が行われます。その為、場合によっては一度も繰り返し処理が行われない事もあります。

サンプルコード

では簡単なサンプルプログラムを作成して試してみます。

#include <stdio.h>

int main(void){
  int num = 50;
  int i = 1;

  printf("数値=%dの約数を求めます\n", num);

  while (i <= num){
    if (num % i == 0){
      printf("約数=%d\n", i);
    }

    i++;
  }

  return 0;
}

上記を「test3-1.c」の名前で保存します。まずコンパイルを行います。

while文

コンパイルが終わりましたら「test3-1」と入力して実行します。

while文

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。