[c言語]繰り返し文 for文 while文 do while文

C言語

今回は繰り返し文のfor文、while文、do while文について紹介していきます。正直言って難しいと思いますが、頑張っていきましょう。

まず、最初に繰り返し文で必要となる知識が何個かあるので、そこからみていきましょう。

後置増分(インクリメント)演算子

  • インクリメント演算子「++」は「左オペランドの変数の値を1だけ増やす」
  • 増やすタイミングは「変数を参照したあと

文だけではあんまり想像できないと思うので、サンプルコードを見てみましょう。

#include <stdio.h>

int main(void)
{
  int n=0,m;

  m=n++;

  printf("m=%d\n",m);
  printf("n=%d\n",n);

  return 0;
}

/*実行結果
m=0
n=1
*/

mにn(=0)を代入してから、nを1足すので、実行結果のようになります。

前置増分演算子

  • 前置増分演算子「++」は、右オペランドの変数の値を1だけ増やす。
  • 増やすタイミングは「変数を参照する前

これもサンプルコードを見てみましょう。

#include <stdio.h>

int main(void)
{
  int n=0,m;

  m=++n;

  printf("m=%d\n",m);
  printf("n=%d\n",n);

  return 0;

}

/*実行結果
m=1
n=1
*/

これはn(=0)を1増やしてから、mに代入するので、

どちらも1と表示され、実行結果のようになります。

for文

インクリメント演算子は理解できたでしょうか?

これから、for文の説明をしていきたいとおもいます。

for (式1; 式2; 式3;) 文

  1. まず、式1を評価する。
  2. 次に、式2を評価する。

   ー結果が非ゼロであれば、文を実行

   ー結果がゼロであれば、for文に戻る。

      3. 式3を評価し、2に戻る。

#include <stdio.h>

int main(void)
{
  int i,n,sum=0;

  printf("整数n: "); scanf("%d",&n);

  for(i=1; i<=n; i++){
    sum+=i;
  }

  printf("sum=%d\n",sum);

  return 0;
}

/*実行結果
整数n: 5
sum=15

後注意点としては、sumの初期化を忘れがちになることです。場合によってはうまくいかない可能性があります。

「+=」がサンプルコードにありますが、これは複合代入演算子といい、右オペランドと左オペランドの和を計算した後に、その和を左オペランドに代入するという役割があります。

「+」と「=」の間にはスペースは入れてはいけないので、それも注意してほしいです。

while文

while(式) 文

まず、式を評価する。

             ー結果が非ゼロであれば、文を実行し、1に戻る。

   ー結果がゼロであれば、while文を終了する。

サンプルプログラムを見てみましょう。

#include <stdio.h>

int main(void)
{
  int i=1,n,sum=0;

  printf("整数n: "); scanf("%d",&n);

  while(i<=n){
    sum+=i;
    i++;
  }

  printf("sum=%d\n",sum);

  return 0;

}

/*実行結果
整数n: 5
sum=15
*/

注意してほしい点は、式の値を変えないと無限ループに陥るので、注意してください。

もし、無限ループになってしまった場合はctrl+cで実行を中止できるので、やってみてください。

do-while文

do 文 while (式);

  1. まず、文を実行する。
  2. 次に式を評価する。

   ー結果が非ゼロであれば、1に戻る。

   ー結果がゼロであれば、終了。

サンプルコードを見てみましょう。

#include <stdio.h>

int main(void)
{
  int i=1,n,sum=0;
  printf("整数n: "); scanf("%d",&n);

  do{
    sum+=i;
    i++;
  }while(i<=n);

  printf("sum=%d\n",sum);

  return 0;

}

/*実行結果
整数n: 5
sum=15
*/

まとめ

繰り返しの処理を行うときは、3つの構文を利用利用することになります。

for文: 繰り返しの回数が明確なときに利用。

while文: 最初に条件判定を行うので、条件を満たさないときは一度も実行されない。

do-while文: 最後に条件判定を行うため必ず一度は実行される。

以上で終了となります。ありがとうございました。

コメント

タイトルとURLをコピーしました