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

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

      計(jì)算機(jī)二級C語言考點(diǎn)解析:條件語句

      中華IT學(xué)院   【 】  [ 2017年9月5日 ]

        四、switch--case語句

        在編寫程序時(shí), 經(jīng)常會碰到按不同情況分轉(zhuǎn)的多路問題, 這時(shí)可用嵌套if -else-if語句來實(shí)現(xiàn), 但if-else-if語句使用不方便, 并且容易出錯(cuò)。對這種情況, Turbo C2.0提供了一個(gè)開關(guān)語句。開關(guān)語句格式為:

        switch(變量)

        {

        case 常量1:

        語句1或空;

        case 常量2:

        語句2或空;

        .

        .

        .

        case 常量n:

        語句n或空;

        default:

        語句n+1或空;

        }

        執(zhí)行switch開關(guān)語句時(shí),將變量逐個(gè)與case后的常量進(jìn)行比較,若與其中一個(gè)相等,則執(zhí)行該常量下的語句,若不與任何一個(gè)常量相等,則執(zhí)行default后面的語句。

        注意:

        1.switch中變量可以是數(shù)值,也可以是字符,但必須是整數(shù)。

        2.可以省略一些case和default。

        3.每個(gè)case或default后的語句可以是語句體,但不需要使用{和}括起來。

        例如:

        main()

        {

        int x,y;

        scanf(%d,&x);

        witch(x)

        {

        case 1:

        y=x+1;

        break; /*退出開關(guān)語句,遇到break才退出*/

        case 4:

        y=2*x+1;

        break;

        default:

        y=x--;

        break;

        }

        printf(%d\n,y);

        }

        從上面的例子可以看出,用開關(guān)語句編的程序一定可以用if語句做。那么在什么情況下需要用switch語句呢?一般在出現(xiàn)比較整的情況下或者能轉(zhuǎn)化成比較整數(shù)的情況下使用?聪旅娴睦樱

        例子:一個(gè)學(xué)生的成績分成五等,超過90分的為'A',80-89的為'B',70-79為'C',60-69為'D',60分以下為'E'。現(xiàn)在輸入一個(gè)學(xué)生的成績,輸出他的等級。

        (1).用if語句

        main()

        {

        float num;

        char grade;

        scanf(%d,&num);

        if(num>=90) grade='A';

        else if(num>=80&&num<89) grade='B';

        else if(num>=70&&num<79) grade='C';

        else if(num>=60&&num<69) grade='D';

        else grade='E';

        printf(%c,grade);

        }

        (2).用switch語句

        main()

        {

        int num;

        char grade;

        scanf(%d,&num);

        num/=10;

        switch(num)

        {

        case 10:

        case 9:

        grade='A';

        break;

        case 8:

        grade='B';

        break;

        case 7:

        grade='C';

        break;

        case 6:

        grade='D';

        break;

        default:

        grade='E';

        break;

        }

        printf(%c,grade);

        }

        說明一點(diǎn),并不是每個(gè)case里面有都語句,有時(shí)侯里面是空的,就好象這一題。switch語句執(zhí)行的順序是從第一case判斷,如果正確就往下執(zhí)行,直到break;如果不正確,就執(zhí)行下一個(gè)case。所以在這里,當(dāng)成績是100分時(shí),執(zhí)行case 10:然后往下執(zhí)行,grade='A';break;退出。

        想想看,這里為什么要用num/=10;?

        假設(shè)當(dāng)程序中有浮點(diǎn)數(shù)時(shí)怎么辦呢?

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