官术网_书友最值得收藏!

4.3.2 if語句的嵌套

當(dāng)if語句子句又是if語句時(shí),就構(gòu)成了if語句的嵌套。if語句既可以嵌套在then子句中,也可以嵌套在else子句中??梢杂腥缦滦问降那短祝?/p>

        ①  if(表達(dá)式)
                if語句;
        ②  if(表達(dá)式)
                if語句;
            else
                if語句;

嵌套的if語句可能又是if-else型的,這將會(huì)出現(xiàn)多個(gè)if和多個(gè)else重疊的情況,這時(shí)要特別注意if和else的配對(duì)問題。

if語句嵌套時(shí),else子句與if的匹配原則是與在它上面、距它最近且尚未匹配的if配對(duì)。為明確匹配關(guān)系,避免匹配錯(cuò)誤,強(qiáng)烈建議:將內(nèi)嵌的if語句,一律用大括號(hào)括起來。

另外,還要注意if語句的嵌套的層數(shù)不宜太多。在實(shí)際編程時(shí),應(yīng)適當(dāng)控制嵌套層數(shù)(一般為2~3層)。

【例4.6】 用嵌套的if語句改寫例4.4的程序:判斷一個(gè)年份是否閏年。

這里只給出源程序,請(qǐng)讀者對(duì)照例4.4的程序進(jìn)行分析。程序如下:

            1   #include<stdio.h>
            2   void main()
            3   {
            4       int year,leap=0;                /* leap預(yù)置為0,非閏年 */
            5       printf("Please input the year:");
            6       scanf("%d",&year);
            7       if(year%100!=0)
            8       {   if(year%4==0)leap=1;
            9       }
            10      else
            11      {   if(year%400==0)leap=1;
            12      }
            13      if(leap)printf("%d is a leap year.\n",year);
            14      else printf("%d is not a leap year.\n",year);
            15      }

請(qǐng)大家試一試,如果去掉第8~9行的大括號(hào)“{}”,會(huì)是什么結(jié)果?去掉第11~12行的“{}”又會(huì)怎樣呢?

【例4.7】 根據(jù)平面上一點(diǎn)M (x, y)的坐標(biāo)判斷點(diǎn)M所在的象限。

分析:將x和y的值分別與0進(jìn)行比較,即可判斷出點(diǎn)M (x, y)所處的象限。在這里,不考慮坐標(biāo)軸上的點(diǎn),認(rèn)為它們可以處于任意象限。

程序如下:

            1   #include<stdio.h>
            2   void main()
            3   {
            4       float x,y;
            5       printf("input x,y:");
            6       scanf("%f,%f",&x,&y);
            7       if(x)0)
            8           if(y)0)printf("在第一象限\n");
            9           else printf("在第四象限\n");
            10      else
            11          if(y)0)printf("在第二象限\n");
            12          else printf("在第三象限\n");
            13  }
主站蜘蛛池模板: 安顺市| 新绛县| 平泉县| 乌拉特前旗| 奉新县| 南充市| 孟村| 富平县| 太仆寺旗| 忻城县| 禹城市| 全南县| 昭通市| 章丘市| 东兰县| 吴旗县| 广饶县| 隆德县| 卢龙县| 临清市| 普定县| 寿光市| 盖州市| 纳雍县| 谢通门县| 松溪县| 万全县| 南昌县| 涿鹿县| 江阴市| 涿州市| 孝义市| 弥勒县| 舞钢市| 屯昌县| 崇礼县| 竹北市| 谷城县| 榆林市| 陇南市| 玉龙|