おぼえがき

過ちては則ち改むるにうんぬんかんぬん

for文とインクリメントとデクリメントについて(C言語)

f:id:feci:20210810151051j:plain

C11

 

C11のfor文について。

#include <stdio.h>

void main() {
  int a;
  for (a = 0a < 5a++) {  //aが0でaが5になるまで毎回aに+1しつつ繰り返す
    printf("%d\n"a);      //01234
  }
}

for文は反復処理の一種です。

 

上記プログラムのように、パレンティス(丸括弧)内に「カウンター+初期値」と「条件式」と「カウンターの更新処理」を先頭から順番にそれぞれ記述します。

そうすると、条件式を満たす場合は下行の処理を延々と繰り返しおこなってくれます。

 

初期値と更新処理はforループをどのタイミングで止めるのかを決定します。

この部分の指定がないと、forループは止まることなく延々と回り続けてしまいます。

 

 

更新処理にはインクリメントやデクリメントがよく使われます。

上記プログラムの a++ は「a = a + 1」の処理の記述を簡略化したものであり、これをインクリメントといいます。

 

インクリメントの反対にデクリメントというものもあります。

例えば a-- は「a = a - 1」という処理を簡略化したものであり、これをデクリメントといいます。

 

インクリメントにもデクリメントにも、それぞれ「前置」と「後置」という書き方があります。

 前置は ++a という書き方であり、後置は a++ という書き方となっています。

 

ただ、前置も後置も処理内容はまったく同じです。

a++ は ++a であり、a = a + 1 であり、a += 1 でもあります。

そしてa-- は --a であり、a = a - 1 であり、a -= 1 でもあります。

 

 

以上です。