Project_OKI’s diary

エンジニアの勉強ブログ

C言語基礎知識18(while文について) 

while文について

1.目的

  • while文について理解する。
  • while文の使い方について理解する。

目次

2.while文とは

 ・同じ処理を繰り返すループ処理を行う。

 

3.使い方

実行する処理が一つの場合

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

 

実行する処理が複数ある場合

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

4.説明

 ・while()の部分で、()内の条件式が成り立つ(true)の時、処理を繰り返し続ける。

 ・よく組み込みではwhile(1){ }で使われる。while(1){は、無限ループするということ。

 

5.プログラムの作成(while文の動作を確認する)

#include <stdio.h>
int main(void){
    //変数宣言
    int i=0;  //ループ回数用変数

    //iが5未満の時ループ
    while(i<2){
        printf("whileループ開始:i=%d\n",i);
        i++;
        printf("whileループ終了:i=%d\n",i); //whileループを出力
    }
    printf("処理終了");
}

結果:https://paiza.io/projects/N6WMY3b7FAiDp7tCvXfrhg?language=c

 

6.プログラムの説明

 (1) while(i<2){

  ・この部分で、iの値が2未満か確認している。2未満であれば、{}内の処理を行う。

 (2) {}内の処理

  ・printfでwhileループの開始とiの値を表示

  ・iの値を+1

  ・printfでwhileループの終了とiの値を表示

  している。

  これにより、whileを抜けるタイミングを確認している。

  

  このプログラムの場合、

  printfでwhileループの終了:2 でiが2となり、i<2が不成立になるため、

  処理が終了する。

 

5.do whileの使い方

 whileと同じような処理にdo whileがある。

 whileとdo whileの違いについて記載する。

 下記使い方で使用する。

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

 

6.プログラムの作成(do whileとwhile文の動作の差)

#include <stdio.h>
int main(void){
    //変数宣言
    int i=2;  //ループ回数用変数

    while(i<2){
        printf("while実行:i=%d\n",i); //whileループを出力
    };
    
    do{
        printf("do while実行:i=%d\n",i);
    }while(i<2);
    
    printf("処理終了");
}

結果:https://paiza.io/projects/tMvzxQLjfnBy4fkLvwAE7A?language=c

 

7.プログラムの説明

 (1) while(i<2){

  ・この部分で、iの値が2未満か確認している。

  ・2未満であれば、{}内の処理を行う。

  ・この場合、i=2でi<2が不成立の為、実行されない。

 

 (2) do{ ・・・}while(i<2);

  ・while(i<2)の部分で、iの値が2未満か確認している。

  ・この場合、一度{}内の処理が実行される。

  ・while(i<2)の所で、i=2の為、i<2が不成立の為、ループを抜ける。

 つまり、

  ・do whileの場合、while(条件)が不成立でも一度は{}内の処理が実行される。

  ・whileのみの場合は、不成立の場合は、{}内の処理は、一度も実行されない。

 

関連記事

過去の記事:

知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary

C言語基礎知識6(関数) - Project_OKI’s diary

C言語基礎知識7(構造体1) - Project_OKI’s diary

C言語基礎知識8(enum:列挙型) - Project_OKI’s diary

C言語基礎知識9(typedef) - Project_OKI’s diary

C言語基礎知識10(extern宣言) - Project_OKI’s diary

C言語基礎知識11(#define) - Project_OKI’s diary

 

組み込みC言語