C语言用for语句实现循环
與while語句相比for語句更為靈活,不僅可以用于循環次數已經確定的情況,還可以用于循環次數不確定而只給出循環結束條件的情況,for語句完全可以代替while語句。
1.for語句的一般形式為:
for(表達式1;表達式2;表達式3)
語句
3個表達式的作用:
表達式1:設置初始條件,只執行1次。可以為0個,1個或多個變量。
表達式2:是循環條件表達式,用來判定是否繼續循環。在每次執行循環體之前先執行表達式2。
表達式3:作為循環的調整,例如使循環變量增值,表達式3是在執行完循環體之后再執行。
2.常用的for語句的形式:
for(循環變量賦初值;循環條件;循環變量增值)
語句
例如:
①"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語句之前給循環變量賦初值。
(2)省略表達式2,不設置和檢查循環條件
此時循環將無終止地進行下去,也就是表達式2始終為真。
就相當于
i=1; while(1){sum=sum+i;i++;}循環無終止進行,i的值不斷加大,sum的值也不斷累積。
(3)省略表達式3,但是要另設法保證循環可以正常結束。
i++的操作不放在表達式3的位置,而是作為循環體的一部分,效果是一樣的,都能使循環正常結束。但是如果表達式3和循環體中都無此"i++",則循環將無終止執行下去。
(4)只有表達式2,沒有表達式1和表達式3。應當在for語句之前給循環變量賦初值,否則循環無法正常進行;在循環體當中使循環變量增值,否則循環將無終止執行下去。
相當于
int i = 1; while(i<100) {sum=sum+i;i++; }(5)省略3個表達式
for(;;) printf("%d",i);相當于
while(1) printf("%d",i);即不設置初值也不判斷循環條件(認為表達式2為真),循環變量也補增值,無終止執行循環體語句,顯然這樣做沒有實用價值。
(6)表達式1可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式,表達式3也可以是與循環控制無關的任意表達式,但無論怎樣寫for語句,都必須使循環能正常執行。
(7)表達式1和表達式3可以是一個簡單的表達式,也可以是一個逗號表達式,即包含一個以上的簡單表達式,中間用逗號隔開。
如:
在逗號表達式內要按照自左向右的順序求解,整個逗號表達式的值為最右邊表達式的值
例如:
相當于
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中定義變量并賦初值。
但是要注意,在表達式1中所定義的變量的有效范圍只限于for循環中,在循環外不能使用此變量。
總結
以上是生活随笔為你收集整理的C语言用for语句实现循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱心图书剧本描述
- 下一篇: 使用Docker发布DNC项目