溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是for循環(huán)

發(fā)布時(shí)間:2020-07-23 16:40:23 來(lái)源:億速云 閱讀:1226 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)什么是for循環(huán),文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

、for循環(huán)是先判斷表達(dá)式,然后執(zhí)行循環(huán)體語(yǔ)句。一般形式“for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體}”;先執(zhí)行“表達(dá)式1”;再執(zhí)行“表達(dá)式2”,如果它的值為真(非0),則執(zhí)行循環(huán)體,否則結(jié)束循環(huán);執(zhí)行完循環(huán)體后再執(zhí)行“表達(dá)式3”。

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),稱(chēng)為“循環(huán)條件”?!氨磉_(dá)式3”很多情況下是一個(gè)帶有自增或自減操作的表達(dá)式,以使循環(huán)條件逐漸變得“不成立”。

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

什么是for循環(huán)

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

#include <stdio.h>
int main(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    printf("%d\n",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 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=getchar())!='\n'; i+=c );

又如:

for( ; (c=getchar())!='\n' ; )
    printf("%c",c);

上述就是小編為大家分享的什么是for循環(huán)了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI