位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 for語句

提問人:劉團圓發(fā)布時間:2020-11-30

1.for循環(huán)的一般形式

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

f or (表達式1:表達式2:表達3)

循環(huán)語句

說明如下:

①表達式1:通常是給循環(huán)變量賦初值,一般是一個賦值表達式。

②表達式2:通常是循環(huán)條件,是用來判斷循環(huán)是否繼續(xù)執(zhí)行的關(guān)系表達式或邏輯表達式。這個表達式通常與某一個(或多個)變量的值有關(guān),隨著這個(些)變量值的改變,表達式的結(jié)果發(fā)生變化,由此來達到循環(huán)條件趨近于0,從而退出循環(huán)。這個(些)變置一般被稱為循環(huán)變量。

③表達式3:通??捎脕硇薷难h(huán)變量的值,一般是賦值語句,可將表達式3稱為循環(huán)步長。

④循環(huán)語句可以是一條語句,也可以是多條語句,如果是多條語句,要使用復(fù)合語句的形式。

2. for循環(huán)的執(zhí)行過程

①計算表達式1,通常用于循環(huán)開始前對循環(huán)變量設(shè)置初值。

②計算表達式2,值為0則結(jié)束循環(huán),否則執(zhí)行第3步。

③執(zhí)行循環(huán)語句。

④計算表達式3,返回第2步。 for語句的執(zhí)行流程如圖所示。

從執(zhí)行流程圖中可以看出,整個for循環(huán)過程中,表達式1只計算一次,表達式2和表達式3則可能計算多次。如果開始表達式2的值就為0的話,循環(huán)可以一次也不執(zhí)行。例如:

for(i—10; i<5; i++)

    printf("%d",i);

程序中,先將賦值為10,之后判斷表達式2: i<5表達式不成立,所以循環(huán)一次也不執(zhí)行。

image.png

在某些情況下,for語句中的表達式1、表達式2、表達式3都可以省略,而改用其他的方式來實現(xiàn)這些功能。例如:輸出1~20之間的整數(shù)。

①正常的程序為:

int i;

    for (i-1;i<=20;i++)

      printf("%d",i);

②省略表達式1的情況:

int i-1; /*定義變量i并初始化,相當于表達式1的功能*/

for(;i<=20;i++)         /*此處表達式1省略,但分號“;”不可以省略*/

    printf ("%d ",i);

③省略表達式2:

for(i=l;;i++)

{

    if(i〈一20)

        printf ("%d  ",i);

    else

        break;        /*使用break終止循環(huán)*/

}

    此時for語句沒有設(shè)定循環(huán)結(jié)束條件,等效于while(1)語句。如果循環(huán)體中沒有相應(yīng)的控制循環(huán)退出的手段,則造成死循環(huán)。

    break語句用在循環(huán)體內(nèi),可以終止循環(huán)。具體用法將在后面介紹。

④省略表達式3:

for(i=l;i<-20;)

/*省略的表達式3放在了循環(huán)體中,分號“;”同樣不可省略*/

{

    printf("%d  ",i);

    i++;

}

這里需要注意,不要寫成如下形式:

for(i=l;i<=20;i++)

{

    printf ("%d ",i);

    i++;

}

這樣寫相當于i++;執(zhí)行了兩次,那么輸出的就是1?20之間的奇數(shù)了。 

⑤也可以表達式1、2、3全部省略,則程序可寫成如下形式:

int i=l;             /*起到表達式1的作用*/

for(;;)

{

    if(i<-20)        /*起到表達式2的作用*/

        printf ("%d

    else

        break;

    i++;             /*起到表達式3的作用*/

}

3.循環(huán)程序設(shè)計思路

實際編程時,不管是用for、while、do-while三種語句中的哪種語句來實現(xiàn)循環(huán),在分析問題是否使用循環(huán)來實現(xiàn)的時候,需要考慮以下幾個問題:

①輸入是什么?用來確定原始值。

②輸出是什么?確定應(yīng)該輸出的結(jié)果。

③從輸入轉(zhuǎn)換為輸出需要怎樣的步驟,是否需要重復(fù)。(確定是否需要使用循環(huán)語句,及循環(huán)語句的內(nèi)容)

④如需重復(fù),能否提前預(yù)知重復(fù)的次數(shù)?以便用來確定使用while、do-while, for哪種循環(huán)語句。

⑤何時不再需要重復(fù)?以便用來確定循環(huán)條件,及循環(huán)體中使循環(huán)條件趨近于0的語句。

4.三種循環(huán)的比較

所有需要用到循環(huán)結(jié)構(gòu)的程序,都可以用for、while、do-while中的任何一個來實現(xiàn),區(qū)別只在于某些問題用哪種語句更方便。

?對于已知執(zhí)行次數(shù)的循環(huán)使用fo「循環(huán)更加方便;

?循環(huán)次數(shù)未知,而是需要使用根據(jù)某一條件來決定是否退出循環(huán)的,可以使用while循環(huán)或do-while 循環(huán)。do-while循環(huán)條件放在循環(huán)體之后,最少執(zhí)行一次循環(huán)體。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部