亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁(yè) | 考試用書(shū) | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
      全國(guó)  |             |          |          |          |          |         
        當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > C語(yǔ)言程序設(shè)計(jì) > C語(yǔ)言輔導(dǎo) > 文章內(nèi)容
        

      全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言入門教程(57)

      中華IT學(xué)院   【 】  [ 2016年1月20日 ]

        for語(yǔ)句

        for語(yǔ)句是C語(yǔ)言所提供的功能更強(qiáng),使用更廣泛的一種循環(huán)語(yǔ)句。其一般形式為:

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

        語(yǔ)句;

        表達(dá)式1 通常用來(lái)給循環(huán)變量賦初值,一般是賦值表達(dá)式。也允許在for語(yǔ)句外給循環(huán)變量賦初值,此時(shí)可以省略

        該表達(dá)式。

        表達(dá)式 2 通常是循環(huán)條件,一般為關(guān)系表達(dá)式或邏輯表達(dá)式。

        表達(dá)式 3 通?捎脕(lái)修改循環(huán)變量的值,一般是賦值語(yǔ)句。

        這三個(gè)表達(dá)式都可以是逗號(hào)表達(dá)式, 即每個(gè)表達(dá)式都可由多個(gè)表達(dá)式組成。三個(gè)表達(dá)式都是任選項(xiàng),都可以省略。

        一般形式中的“語(yǔ)句”即為循環(huán)體語(yǔ)句。for語(yǔ)句的語(yǔ)義是:

        1.首先計(jì)算表達(dá)式 1的值。

        2.再計(jì)算表達(dá)式2的值,若值為真(非0)則執(zhí)行循環(huán)體一次, 否則跳出循環(huán)。

        3.然后再計(jì)算表達(dá)式3的值,轉(zhuǎn)回第2步重復(fù)執(zhí)行。在整個(gè) for循環(huán)過(guò)程中,表達(dá)式1只計(jì)算一次,表達(dá)式 2和表達(dá)

        式,3則可能計(jì)算多次。循環(huán)體可能多次執(zhí)行,也可能一次都不執(zhí)行。for 語(yǔ)句的執(zhí)行過(guò)程如圖所示。

        void main(){

        int n,s=0;

        for(n=1;n<=100;n++)

        s=s+n;

        printf("s=%d\n",s);

        }

        用 for語(yǔ)句計(jì)算 s=1+2+3+...+99+100

        int n,s=0;

        for(n=1;n<=100;n++)

        s=s+n;

        printf("s=%d\n",s);

        本例 for語(yǔ)句中的表達(dá)式 3為n++,實(shí)際上也是一種賦值語(yǔ)句,相當(dāng)于n=n+1,以改變循環(huán)變量的值。

        void main(){

        int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;n>0;a++,n--)

        printf("%d ",a*2);

        }

        用 for語(yǔ)句修改例題。從0開(kāi)始,輸出 n個(gè)連續(xù)的偶數(shù)。

        int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;n>0;a++,n--)

        printf("%d ",a*2);

        本例的for語(yǔ)句中,表達(dá)式1已省去,循環(huán)變量的初值在 for語(yǔ)句之前由 scanf語(yǔ)句取得,表達(dá)式 3是一個(gè)逗號(hào)表達(dá)

        式,由a++,n-- 兩個(gè)表達(dá)式組成。每循環(huán)一次 a自增1,n自減1。a的變化使輸出的偶數(shù)遞增,n的變化控制循次數(shù)。

        在使用for語(yǔ)句中要注意以下幾點(diǎn)

        1.for語(yǔ)句中的各表達(dá)式都可省略,但分號(hào)間隔符不能少。如:for(;表達(dá)式;表達(dá)式)省去了表達(dá)式1。for(表達(dá)式;;

        表達(dá)式)省去了表達(dá)式 2。

        for(表達(dá)式;表達(dá)式;)省去了表達(dá)式3。for(;;)省去了全部表達(dá)式。

        2.在循環(huán)變量已賦初值時(shí),可省去表達(dá)式1,如例 3.27即屬于這種情形。如省去表達(dá)式 2或表達(dá)式 3則將造成無(wú)限循

        環(huán), 這時(shí)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán)。例題即屬于此情況。

        void main(){

        int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;n>0;)

        { a++;n--;

        printf("%d ",a*2);

        }

        } int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;n>0;)

        { a++;n--;

        printf("%d ",a*2);

        }

        本例中省略了表達(dá)式 1和表達(dá)式 3,由循環(huán)體內(nèi)的n--語(yǔ)句進(jìn)行循環(huán)變量 n的遞減,以控制循環(huán)次數(shù)。

        void main(){

        int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;;){

        a++;n--;

        printf("%d ",a*2);

        if(n==0)break;

        }

        }

        int a=0,n;

        printf("\n input n: ");

        scanf("%d",&n);

        for(;;){

        a++;n--;

        printf("%d ",a*2);

        if(n==0)break;

        }

        本例中for語(yǔ)句的表達(dá)式全部省去。由循環(huán)體中的語(yǔ)句實(shí)現(xiàn)循環(huán)變量的遞減和循環(huán)條件的判斷。當(dāng)n值為0時(shí),由break

        語(yǔ)句中止循環(huán),轉(zhuǎn)去執(zhí)行 for以后的程序。在此情況下,for語(yǔ)句已等效于 while( 1)語(yǔ)句。如在循環(huán)體中沒(méi)有相應(yīng)的

        控制手段,則造成死循環(huán)。

        3.循環(huán)體可以是空語(yǔ)句。

        #include"stdio.h"

        void main(){

        int n=0;

        printf("input a string:\n");

        for(;getchar()!='\n';n++);

        printf("%d",n);

        }

        本例中,省去了 for語(yǔ)句的表達(dá)式1,表達(dá)式 3也不是用來(lái)修改循環(huán)變量,而是用作輸入字符的計(jì)數(shù)。這樣, 就把本

        應(yīng)在循環(huán)體中完成的計(jì)數(shù)放在表達(dá)式中完成了。因此循環(huán)體是空語(yǔ)句。應(yīng)注意的是,空語(yǔ)句后的分號(hào)不可少,如缺少

        此分號(hào),則把后面的printf 語(yǔ)句當(dāng)成循環(huán)體來(lái)執(zhí)行。反過(guò)來(lái)說(shuō),如循環(huán)體不為空語(yǔ)句時(shí), 決不能在表達(dá)式的括號(hào)后

        加分號(hào), 這樣又會(huì)認(rèn)為循環(huán)體是空語(yǔ)句而不能反復(fù)執(zhí)行。這些都是編程中常見(jiàn)的錯(cuò)誤,要十分注意。

        4.for語(yǔ)句也可與while,do-while語(yǔ)句相互嵌套,構(gòu)成多重循環(huán)。以下形成都合法的嵌套。

        (1)for(){…

        while()

        {…}

        …

        }

        (2)do{

        …

        for()

        {…}

        …

        }while();

        (3)while(){

        …

        for()

        {…}

        …

        }

        (4)for(){

        …

        for(){

        …

        }

        }

        void main(){

        int i,j,k;

      首頁(yè) 1 2 尾頁(yè)
      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved