欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語(yǔ)言

C語(yǔ)言for循環(huán)

時(shí)間:2025-04-08 08:29:49 C語(yǔ)言 我要投稿

C語(yǔ)言for循環(huán)

  目前,C語(yǔ)言編譯器普遍存在于各種不同的操作系統(tǒng)中。那么大家知道C語(yǔ)言for循環(huán)是什么呢?下面一起來(lái)看看!

  除了while循環(huán),C語(yǔ)言中還有 for 循環(huán),它的使用更加靈活,完全可以取代 while 循環(huán)。

  上節(jié)我們使用 while 循環(huán)來(lái)計(jì)算1加到100的值,代碼如下:

  #include int main(){ int i, sum=0; i = 1; //語(yǔ)句① while(i<=100 /*語(yǔ)句②*/ ){ sum+=i; i++; //語(yǔ)句③ } printf("%d ",sum); return 0;}

  可以看到,語(yǔ)句①②③被放到了不同的地方,代碼結(jié)構(gòu)較為松散。為了讓程序更加緊湊,可以使用 for 循環(huán)來(lái)代替,如下所示:

  #include int main(){ int i, sum=0; for(i=1/*語(yǔ)句①*/; i<=100/*語(yǔ)句②*/; i++/*語(yǔ)句③*/){ sum+=i; } printf("%d ",sum); return 0;}

  在 for 循環(huán)中,語(yǔ)句①②③被集中到了一起,代碼結(jié)構(gòu)一目了然。

  for 循環(huán)的一般形式為:

  for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3){

  語(yǔ)句塊

  }

  它的運(yùn)行過(guò)程為:

  1) 先執(zhí)行“表達(dá)式1”。

  2) 再執(zhí)行“表達(dá)式2”,如果它的值為真(非0),則執(zhí)行循環(huán)體,否則結(jié)束循環(huán)。

  3) 執(zhí)行完循環(huán)體后再執(zhí)行“表達(dá)式3”。

  4) 重復(fù)執(zhí)行步驟 2) 和 3),直到“表達(dá)式2”的值為假,就結(jié)束循環(huán)。

  上面的步驟中,2) 和 3) 是一次循環(huán),會(huì)重復(fù)執(zhí)行,for 語(yǔ)句的主要作用就是不斷執(zhí)行步驟 2) 和 3)。

  “表達(dá)式1”僅在第一次循環(huán)時(shí)執(zhí)行,以后都不會(huì)再執(zhí)行,可以認(rèn)為這是一個(gè)初始化語(yǔ)句!氨磉_(dá)式2”一般是一個(gè)關(guān)系表達(dá)式,決定了是否還要繼續(xù)下次循環(huán),稱為“循環(huán)條件”!氨磉_(dá)式3”很多情況下是一個(gè)帶有自增或自減操作的表達(dá)式,以使循環(huán)條件逐漸變得“不成立”。

  for循環(huán)的執(zhí)行過(guò)程可用下圖表示:

  我們?cè)賮?lái)分析一下“計(jì)算從1加到100的和”的代碼:

  #include int main(){ int i, sum=0; for(i=1; i<=100; i++){ sum+=i; } printf("%d ",sum); return 0;}

  運(yùn)行結(jié)果:

  5050

  代碼分析:

  1) 執(zhí)行到 for 語(yǔ)句時(shí),先給 i 賦初值1,判斷 i<=100 是否成立;因?yàn)榇藭r(shí) i=1,i<=100 成立,所以執(zhí)行循環(huán)體。循環(huán)體執(zhí)行結(jié)束后(sum的值為1),再計(jì)算 i++。

  2) 第二次循環(huán)時(shí),i 的值為2,i<=100 成立,繼續(xù)執(zhí)行循環(huán)體。循環(huán)體執(zhí)行結(jié)束后(sum的值為3),再計(jì)算 i++。

  3) 重復(fù)執(zhí)行步驟 2),直到第101次循環(huán),此時(shí) i 的值為101,i<=100 不成立,所以結(jié)束循環(huán)。

  由此我們可以總結(jié)出for循環(huán)的一般形式:

  for(初始化語(yǔ)句; 循環(huán)條件; 自增或自減){

  語(yǔ)句塊

  }

  for 循環(huán)中的三個(gè)表達(dá)式

  for 循環(huán)中的“表達(dá)式1(初始化條件)”、“表達(dá)式2(循環(huán)條件)”和“表達(dá)式3(自增或自減)”都是可選項(xiàng),都可以省略(但分號(hào);必須保留)。

  1) 修改“從1加到100的和”的代碼,省略“表達(dá)式1(初始化條件)”:

  int main(){int i = 1, sum = 0;for( ; i<=100; i++){ sum+=i;}

  可以看到,將i=1移到了 for 循環(huán)的外面。

  2) 省略了“表達(dá)式2(循環(huán)條件)”,如果不做其它處理就會(huì)成為死循環(huán)。例如:

  for(i=1; ; i++) sum=sum+i;

  相當(dāng)于:

  i=1;while(1){ sum=sum+i; i++;}

  所謂死循環(huán),就是循環(huán)條件永遠(yuǎn)成立,循環(huán)會(huì)一直進(jìn)行下去,永不結(jié)束。死循環(huán)對(duì)程序的危害很大,一定要避免。

  3) 省略了“表達(dá)式3(自增或自減)”,就不會(huì)修改“表達(dá)式2(循環(huán)條件)”中的變量,這時(shí)可在循環(huán)體中加入修改變量的語(yǔ)句。例如:

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

  4) 省略了“表達(dá)式1(初始化語(yǔ)句)”和“表達(dá)式3(自增或自減)”。例如:

  for( ; i<=100 ; ){ sum=sum+i; i++;}

  相當(dāng)于:

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

  5) 3個(gè)表達(dá)式可以同時(shí)省略。例如:

  for( ; ; ) 語(yǔ)句

  相當(dāng)于:

  while(1) 語(yǔ)句

  6) “表達(dá)式1”可以是初始化語(yǔ)句,也可以是其他語(yǔ)句。例如:

  for( sum=0; i<=100; i++ ) sum=sum+i;

  7) “表達(dá)式1”和“表達(dá)式3”可以是一個(gè)簡(jiǎn)單表達(dá)式也可以是逗號(hào)表達(dá)式。

  for( sum=0,i=1; i<=100; i++ ) sum=sum+i;

  或:

  for( i=0,j=100; i<=100; i++,j-- ) k=i+j;

  8) “表達(dá)式2”一般是關(guān)系表達(dá)式或邏輯表達(dá)式,但也可是數(shù)值或字符,只要其值非零,就執(zhí)行循環(huán)體。例如:

  for( i=0; (c=get))!=' '; i+=c );

  又如:

  for( ; (c=get))!=' ' ; ) printf("%c",c);

【C語(yǔ)言for循環(huán)】相關(guān)文章:

C語(yǔ)言循環(huán)結(jié)構(gòu)11-04

C語(yǔ)言跳出循環(huán)10-16

C語(yǔ)言for循環(huán)的使用10-24

C語(yǔ)言循環(huán)結(jié)構(gòu)的嵌套06-18

c語(yǔ)言什么是死循環(huán)06-27

C語(yǔ)言基礎(chǔ)循環(huán)結(jié)構(gòu)07-28

關(guān)于c++語(yǔ)言中的循環(huán)語(yǔ)言08-16

C語(yǔ)言中while循環(huán)和do...while循環(huán)07-19

C語(yǔ)言循環(huán)控制實(shí)例教程06-05