日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言用for语句实现循环

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言用for语句实现循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

與while語句相比for語句更為靈活,不僅可以用于循環次數已經確定的情況,還可以用于循環次數不確定而只給出循環結束條件的情況,for語句完全可以代替while語句。
1.for語句的一般形式為:
for(表達式1;表達式2;表達式3)
語句
3個表達式的作用:
表達式1:設置初始條件,只執行1次。可以為0個,1個或多個變量。
表達式2:是循環條件表達式,用來判定是否繼續循環。在每次執行循環體之前先執行表達式2。
表達式3:作為循環的調整,例如使循環變量增值,表達式3是在執行完循環體之后再執行。
2.常用的for語句的形式:
for(循環變量賦初值;循環條件;循環變量增值)
語句
例如:

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

①"i=1"是給循環變量賦初值為1
②"i<100"是指定循環條件
③"i++"是循環變量i的值不斷增加1,以便最終滿足終止循環的條件,使循環結束,也就是:循環變量i的初值為1,循環變量增量為1,循環變量最終值是100,每執行一次循環,i加1,直到i大于100,就不再執行了。
3.for語句的執行過程:
(1)求解表達式1。
(2)求解表達式2。若此條件表達式的值為真(非0),則執行for語句中的循環體,然后執行第(3)步,若條件表達式的值為假(0),則循環結束,轉到第(5)步。
(3)求解表達式3。
(4)轉回(2)繼續執行。
在執行完循環體后,循環變量的值超過循環終值,循環結束。其規律為:循環變量沿著變化的方向超過循環終值,循環就結束了。
(5)循環結束,執行for語句下面一個語句。
4.for語句與while語句的改寫
for語句:
for(表達式1;表達式2;表達式3)語句
改寫為while語句:
表達式1;
while(表達式2)
{
語句
表達式3
}
二者無條件等價。
5.for語句的一些變化
(1)省略表達式1,即不設置處置,但是不可以省略表達式1后面的分號。
注意:因為省略了表達式1,沒有對循環變量賦初值,所以為了正常執行循環,應該在for語句之前給循環變量賦初值。

int i=1; for(;i<100;i++)sum=sum+i;

(2)省略表達式2,不設置和檢查循環條件
此時循環將無終止地進行下去,也就是表達式2始終為真。

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

就相當于

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

循環無終止進行,i的值不斷加大,sum的值也不斷累積。
(3)省略表達式3,但是要另設法保證循環可以正常結束。

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

i++的操作不放在表達式3的位置,而是作為循環體的一部分,效果是一樣的,都能使循環正常結束。但是如果表達式3和循環體中都無此"i++",則循環將無終止執行下去。
(4)只有表達式2,沒有表達式1和表達式3。應當在for語句之前給循環變量賦初值,否則循環無法正常進行;在循環體當中使循環變量增值,否則循環將無終止執行下去。

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

相當于

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

(5)省略3個表達式

for(;;) printf("%d",i);

相當于

while1printf("%d",i);

即不設置初值也不判斷循環條件(認為表達式2為真),循環變量也補增值,無終止執行循環體語句,顯然這樣做沒有實用價值。
(6)表達式1可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式,表達式3也可以是與循環控制無關的任意表達式,但無論怎樣寫for語句,都必須使循環能正常執行。

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

(7)表達式1和表達式3可以是一個簡單的表達式,也可以是一個逗號表達式,即包含一個以上的簡單表達式,中間用逗號隔開。
如:

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

在逗號表達式內要按照自左向右的順序求解,整個逗號表達式的值為最右邊表達式的值
例如:

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

相當于

for(i=1;i<100;i=i+2)sum=sum+i;

(8)表達式2一般是關系表達式(如i<100)或邏輯表達式(a<b && x<y),但也可以是數值表達式或者字符表達式,只要其值為非0,就執行循環體
①for(i=0;(c=getchar())!='\n';i+=c)
表達式2先從終端接受一個字符給c,然后判斷此賦值表達式是否不等于’\n’(換行符),如果不等于’\n’,就執行循環體。
這個for語句的循環體為空語句,是因為把本來要在循環體內處理的內容放到了表達式3中。
②for(;(c=getchar())!='\n';) printf("%c",c);
for語句只有表達式2,沒有表達式1和表達式3,作用是沒讀入一個字符后立即輸出該字符,直到輸入一個’\n’為止。
要注意的是,從終端向計算機輸入時,是在按Enter鍵以后才將一批數據送到內存緩沖區去。因此不是從終端輸入一個字符馬上輸出一個字符,而是在按下Enter鍵之后數據才送到內存緩沖區,然后每次從緩沖區讀一個字符,再輸出該字符。
(9)C99允許在for語句的表達式1中定義變量并賦初值。

for(int i=1;i<100;i++)sum=sum+i;

但是要注意,在表達式1中所定義的變量的有效范圍只限于for循環中,在循環外不能使用此變量。

總結

以上是生活随笔為你收集整理的C语言用for语句实现循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。