激情综合五月,亚洲69av,日韩亚洲一区在线,日韩精品91亚洲二区在线观看

4.3 if語句

4.3 if語句

在C語言中可以用if語句構成選擇結構。if語句的語義是,根據給定條件的值,以決定執行某個分支程序段,所以也稱為條件語句。

4.3.1 if語句的3種形式

1.基本if語句

基本if語句的格式為:

            if(表達式) 語句;

這是if語句最簡單的一種形式。其中,if是關鍵字標識符;表達式可以是任何類型的表達式,但兩側的括號不能省略;語句稱為if的內嵌語句,也叫if子句,可以是任何符合C語言語法的語句,但應是邏輯上的一條語句。如果if子句需要多條語句,則應寫成復合語句的形式,使其在語法上作為一條語句,這是復合語句的重要語法作用之一。

該語句的語義是,如果表達式的值為非0(真),則執行if子句;否則跳過if子句,執行if語句的后續語句。參見圖4.1。

例如:

            if(x>0)printf("%f\n",sqrt(x));       /* sqrt()是求平方根的標準函數 */

【例4.3】 輸入兩個整數,輸出其中較大的數。

分析:定義3個整型變量a、b和max,其中a、b用于表示從鍵盤輸入的任意兩個整數, max表示其中較大的數。首先假設a是較大的數,即先把a賦予變量max,再用基本if語句判別max和b的大小,如果max小于b,則把b賦予max。因此,max中總是較大的數,最后輸出max的值,其N-S流程圖如圖4.2所示。

圖4.1 基本if語句的語義

圖4.2 例4.3的N-S流程圖

程序代碼如下:

            /* 輸入兩個整數,輸出其中較大的數 */
            #include "stdio.h"
            main( )
            {
              int a,b,max;
              printf("\n input two numbers: ");
              scanf("%d,%d",&a,&b);
              max=a;
              if (max<b) max=b;
              printf("max=%d\n",max);
            }

程序運行結果如下:

            輸入: 4,3
            輸出: max=4

【例4.4】 分析下面程序的輸出結果。

            #include"stdio.h"
            main()
            {
                int a,b,t;
                printf("\n input two numbers:");
                scanf("%d,%d",&a,&b);
                printf("%d,%d\n",a,b);
                  if(a<b)
                  {
                      t=a;
                      a=b;
                      b=t;
                  }
                printf("%d,%d\n",a,b);
            }

請思考,如果將上例中if子句的大括號去掉,程序的運行結果是什么?

2.if-else語句

if-else語句的格式為:

            if(表達式)
                    語句1;
            else
                    語句2;

該語句的語義是,如果表達式的值為非 0(真),則執行語句1;否則執行語句2,見圖4.3。語句1和語句2也稱為if子句和else子句,它們應是邏輯上的一條語句。

對于例4.3,也可以只定義兩個變量a和b,利用if-else語句實現程序要求。如果a>b,則輸出a,否則輸出b。改寫例4.3的程序代碼如下:

圖4.3 if-else語句的語義

            /* 輸入兩個整數,輸出其中較大的數 */
            #include"stdio.h"
            main()
            {
                int a,b;
                printf("input two numbers:");
                scanf("%d,%d",&a,&b);
                if(a>b)
                    printf("max=%d\n",a);
                else
                    printf("max=%d\n",b);
            }

3.if-else if-else語句

if-else if-else語句的格式如下:

            if(表達式1)
              語句1;
            else if(表達式2)
              語句2;
            else if(表達式3)
              語句3;
              ……
            else if(表達式n-1)
              語句n-1;
            else
              語句n;

該語句的語義是,依次判斷各表達式的值,當出現某個表達式的值為非 0(真)時,則執行其對應的內嵌語句,然后跳到整個 if 語句之外繼續其后續語句,如果所有表達式均為 0 (假),則執行else子句(語句n),然后繼續執行后續語句,參見圖4.4。

圖4.4 if-else if-else語句的語義

例如:

            if(number>100)
                    cost=0.15;
            else if(number>50)
                    cost=0.10;
            else if(number>10)
                    cost=0.075;
            else
                    cost=0;

【例4.5】 編寫程序判斷從鍵盤輸入的字符是控制字符、數字字符、大寫英文字母、小寫英文字母,還是其他字符。

分析:定義一個字符型變量c,接收從鍵盤輸入的字符,然后根據c的ASCII碼來判別輸入字符的類型。從ASCII碼表可知,控制字符的ASCII碼值小于32,數字字符“0”到“9”的ASCII碼值在48~57范圍內,大寫英文字母“A”到“Z”的ASCII碼值在65~91范圍內,小寫英文字母“a”到“z”的ASCII碼值在97~123范圍內,其余則為其他字符。這是一個多分支選擇的問題,可利用if-else if-else語句判斷c的ASCII值所在的范圍,分別給出不同的輸出。

程序代碼如下:

            #include"stdio.h"
            main()
            {
                char c;
              printf("input a character:");
              c=getchar(); /* 也可使用語句:scanf("%c",&c); */
                    if(c<32)
                      printf("This is a control character\n");
                    else if(c>=48&&c<=57)
                      printf("This is a digit\n");
                    else if(c>=65&&c<=91)
                      printf("This is a capital letter\n");
                    else if(c>=97&&c<=123)
                      printf("This is a small letter\n");
                    else
                      printf("This is an other character\n");
            }

程序運行結果如下:

            輸入: a
            輸出: This is a small letter

因為在C語言中,字符型數據和整型數據通用,所以例4.5中的if語句也可改寫為下列形式:

            if(c<32)
                    printf("This is a control character\n");
            else if(c>='0'&&c<='9')
                    printf("This is a digit\n");
            else if(c>='A'&&c<='Z')
                    printf("This is a capital letter\n");
            else if(c>='a'&&c<='z')
                    printf("This is a small letter\n");
            else
                    printf("This is an other character\n");

【例4.6】 已知學生的百分制成績,編寫程序按百分制分數進行分段評定,分出相應的等級:

● 如果分數大于等于90,則評定為A;

● 如果分數在80~89范圍內,則評定為B;

● 如果分數在70~79范圍內,則評定為C;

● 如果分數在60~69范圍內,則評定為D;

● 如果分數小于60,則評定為E。

分析:這是一個典型的多分支選擇問題。定義一個實型變量score表示從鍵盤輸入的學生百分制成績,定義一個字符型變量grade表示相應的等級,用if-else if-else語句判斷分數所在的范圍,給字符型變量grade賦予相應的評定等級值,最后輸出score和gread的值。

程序代碼如下:

            #include"stdio.h"
            main()
            {
                    double score;char grade;
                    printf("Please input the student's score:");
                    scanf("%lf",&score);
                    if(score>=90)
                      grade='A';
                    else if(score>=80)
                      grade='B';
                    else if(score>=70)
                      grade='C';
                    else if(score>=60)
                      grade='D';
                    else
                      grade='E';
                    printf("%lf,%c\n",score,grade);
            }

程序運行結果如下:

            輸入:85
            輸出:85.000000,B

4.在使用if語句時應注意的問題

① 在if語句的3種形式中,if關鍵字之后必須有一對括號,把表示判斷條件的表達式括起來。

② 在if語句的3種形式中,表示判斷條件的表達式通常是關系表達式或邏輯表達式,也可以是其他表達式,如算術表達式、賦值表達式等,還可以是單個常量或變量(單個常量或變量可看成是表達式的特殊情況)。C語言關心的只是表達式的值是0還是非0而不是表達式的形式,所以只要表達式的值為非0,就執行其后的內嵌語句。

例如:

            if(a=b)     /* 表示條件的表達式是賦值表達式 */
                    printf("%d",a);
            else
                    printf("a=0");

本語句的語義是,把b值賦予a,如果為非0則輸出該值,否則輸出"a=0"字符串。

③ 在if語句的3種形式中,所有的內嵌語句應為單個語句,如果希望在滿足條件時執行一組(多個)語句,則必須把這一組語句用一對大括號“{}”括起來組成一個復合語句,但要注意在右大括號“}”之后不能再加分號。

例如,下列語句完成“如果a>b,則將a和b的值交換”的功能:

            if(a>b)
            {t=a;a=b;b=t;}

④ 無論if語句的形式如何,從C語言的語法上來說,它們都是一條完整的控制語句。

4.3.2 if語句的嵌套

C語言允許if語句嵌套,即在if語句的內嵌語句中出現一個或多個其他的if語句,這種形式被稱為if語句的嵌套結構。采用嵌套結構的實質其實是為了實現多分支選擇。嵌套結構的一般形式可表示如下:

            if(表達式1)
                    if( 表達式2)語句1;         /* 內嵌if 語句 */
                    else  語句2;
            else
                    if(表達式3) 語句3;            /* 內嵌if 語句 */
                    else語句4;

該語句的語義是,如果表達式1和表達式2的值均為非0,則執行語句1;如果表達式1的值非0,而表達式2的值為0,則執行語句2;如果表達式1的值為0,而表達式3的值為非0,則執行語句3;如果表達式1和表達式3的值均為0,則執行語句4。所以該語句實現了4個分支的選擇。

由于if語句有多種形式,所以其嵌套形式也有多種,根據實際情況可實現多種分支選擇結構。在使用if的嵌套形式時應當注意的是if與e1se的配對關系。根據C語言的語法,關鍵字if可以沒有對應的關鍵字else(基本if語句),但關鍵字else必須要有對應的關鍵字if。C語言規定從最內層開始,e1se總是與位于它前面最近的(未曾配對的)if配對。

【例4.7】 用if語句的嵌套形式完成下列分段函數的計算:

分析:這是一個3分支問題,從鍵盤得到x的值,根據x值的范圍求出函數y的值并輸出。程序代碼如下:

            #include"stdio.h"
            main()
            {
                    double x,y;
                    scanf("%lf",&x);
                    if(x!=0)
                      if(x>0)      /* 嵌套的if-else語句 */
                  y=1;
                      else
                  y=1;
                    else
                  y=0;
                    printf("%lf,%lf",x,y);
            }

程序運行結果如下:

            輸入:10
            輸出:10.000000,1.000000

程序中使用了if-else語句結構,其中的if子句又是一個if-else語句結構。

4.3.3 條件運算符和條件表達式

在if-else語句中,當if子句和else子句都只是給同一個變量賦值的單個賦值語句時,可以使用C語言提供的條件表達式來代替if-else語句,實現給變量賦值的目的。這樣不但使程序簡潔,也提高了運行效率。條件表達式的一般形式為:

            表達式1?表達式2:表達式3

其中,“?:”為條件運算符,它們是一對三目運算符,不能分開單獨使用。條件運算符的優先級低于關系運算符和算術運算符,但高于賦值運算符。結合方向為右結合性。

條件表達式的求值規則為,先求解表達式1,如果表達式1的值為非0,則條件表達式的值為表達式2 的值,否則為表達式3的值。

條件表達式通常用于賦值語句之中。

例如,下列if-else語句實現了將a和b中較大的數賦給max。

            if(a>b)
              max=a;
            else
              max=b;

改寫上述if-else語句為如下賦值語句:

            max=(a>b)?a:b;     /* 利用條件表達式給變量max賦值 */

該語句的語義為,如a>b為真,則把a賦予max,否則把b賦予max。

例4.7中的分段函數的計算也可以用條件表達式實現給變量y賦值,請看下列賦值語句:

            Y=x>0?1:x==0?0:-1

該語句應理解為:

            Y=x>0?1:x==0?0:-1

這是條件表達式嵌套的情形,即其中的表達式3又是一個條件表達式。

CSGO:有框你不打? 超級保安在都市 寂寞劍客作品 戰神醫婿目錄 我真不是神仙 寧溪戰寒爵 玉京山上的樹 末世之百萬美女兵團 春城何處不飛花 麻辣女兵之錯位的幸福

本站所有小說均由搜索引擎轉碼而來,只為讓更多讀者欣賞,本站不保存小說內容及數據,僅作宣傳展示。

Copyright © 2024 旺旺看書網sitemap

激情综合五月,亚洲69av,日韩亚洲一区在线,日韩精品91亚洲二区在线观看
欧美亚洲tv| 亚洲1234区| 黑丝一区二区| 韩国三级一区| 免费在线小视频| 成人日韩精品| 神马日本精品| 免费成人在线观看| 国产午夜精品一区二区三区欧美| 激情综合网站| 麻豆视频在线观看免费网站黄 | 精精国产xxxx视频在线野外| 日韩福利一区| 一区视频在线| 国产精品自在| 红桃视频欧美| 精品91福利视频| 伊人精品一区| 精品在线99| 国产精品一区二区三区美女 | 国产精品久久久久久久久妇女| 国产欧美欧美| 开心激情综合| 精品免费av在线| 欧美日韩视频一区二区三区| 午夜在线视频观看日韩17c| 香蕉人人精品| 视频精品一区| 麻豆高清免费国产一区| 91欧美日韩| 亚洲婷婷免费| 久久国产精品毛片| 亚洲精品国产日韩| 国产午夜精品一区在线观看| 欧美激情麻豆| 亚洲女同av| 一本色道久久精品| 欧美日本久久| 日韩av专区| 亚洲女同一区| 日本午夜免费一区二区| 国产福利一区二区精品秒拍| 天堂8中文在线最新版在线| 欧美特黄视频| 日韩久久99| 水蜜桃精品av一区二区| 国产高清一区| 亚洲三级观看| 成人一区而且| 亚洲一级大片| 国产伦久视频在线观看| 亚洲中字黄色| 精品久久免费| 亚洲欧美成人综合| 国产精品玖玖玖在线资源| 美女网站视频一区| 日本va欧美va瓶| 日韩av一级| 91午夜精品| 岛国av在线播放| 视频在线在亚洲| 精品一区二区三区亚洲| 999久久久亚洲| 日韩av资源网| 久久精品国产大片免费观看| 日韩欧美中文字幕一区二区三区| 免费视频一区二区三区在线观看 | 久久久精品五月天| 日本在线成人| 久久久久国产一区二区| 日本国产亚洲| 激情五月综合| 国产成人久久精品麻豆二区| 亚洲尤物av| 99久久激情| 91av一区| 国产视频一区三区| 色婷婷色综合| 国产亚洲精aa在线看| 蜜臀av免费一区二区三区| 国产精品久久久久久av公交车| 91久久国产| 麻豆mv在线观看| 国产欧美精品| 蜜臀久久99精品久久久画质超高清 | 国产探花一区| 欧美日韩国产探花| 福利在线一区| 国产精品一区二区三区www| 日韩一区精品字幕| 91精品一区二区三区综合| 欧美精品第一区| 日韩三级视频| 中文字幕亚洲精品乱码| 欧美午夜不卡| 久久蜜桃av| 首页国产精品| 久久久久九九精品影院| 7777精品| 蜜桃一区二区三区在线观看| 99久久精品网| 婷婷激情一区| 国产高清精品二区| 国产精品中文| 日韩精彩视频在线观看| 日韩一区欧美二区| 国产亚洲综合精品| 欧美成人高清| 激情欧美日韩一区| 青青青免费在线视频| 国产一区二区三区精品在线观看 | 日本麻豆一区二区三区视频| 男女性色大片免费观看一区二区| 精品1区2区3区4区| 一区免费在线| 女人av一区| 不卡中文字幕| 亚洲在线电影| 亚洲三级国产| 午夜视频一区二区在线观看| 日韩中文字幕一区二区三区| 国产精品美女| 免播放器亚洲| 中文字幕一区二区三区四区久久 | 日韩国产一区二| 日韩在线黄色| 日本麻豆一区二区三区视频| 欧美视频久久| 欧美伊人久久| 国产精品mm| 三上亚洲一区二区| 久久久五月天| 国产精品日韩| 中文字幕av一区二区三区人| 亚洲三级视频| 欧美日韩一区自拍| 免费一区二区三区在线视频| 成人在线视频区| 日韩欧美少妇| 夜夜嗨av一区二区三区网站四季av| 麻豆精品91| 日本免费一区二区视频| 国产精品视频一区二区三区| 国产精品日韩精品中文字幕| 精品国产一区二区三区av片| 成人福利视频| 亚洲国产成人精品女人| 美女精品在线观看| 日韩精品高清不卡| 国产精品亚洲综合在线观看| 老牛国内精品亚洲成av人片| 91中文字幕精品永久在线| 久久国产日本精品| 噜噜噜躁狠狠躁狠狠精品视频 | 国户精品久久久久久久久久久不卡 | 欧美国产免费| 中文字幕成在线观看| 欧美.日韩.国产.一区.二区| 亚洲一区二区三区四区电影| 日本a级不卡| 伊人久久视频| 丝袜脚交一区二区| 国产麻豆一区二区三区| 黄色在线网站噜噜噜| 久久久久午夜电影| 视频一区在线视频| 国产欧美日韩在线一区二区| 欧美资源在线| 日韩欧美一区二区三区免费观看| 国产成人1区| 国产精品一区高清| 久久精品二区亚洲w码| 国产欧美日韩免费观看| 一区二区三区四区在线观看国产日韩| 天堂中文av在线资源库| 欧美成人一二区| 国产精品s色| 精品精品国产三级a∨在线| 欧美精品三级在线| 国产亚洲在线观看| 日韩在线观看一区二区| 黄色成人在线网址| 国产一区白浆| 精品少妇av| 国产欧美视频在线| 亚洲精品成人| 亚洲自啪免费| 久久高清免费观看| 欧美日韩四区| 日韩一区二区三免费高清在线观看| 日韩中文字幕高清在线观看| 午夜在线视频观看日韩17c| 国产精品一区二区99| 99久久夜色精品国产亚洲狼 | 国产精品亚洲一区二区在线观看| 久久精品国产99久久| 国产精品久久久久久久久久妞妞| 黄色av日韩| 成人三级高清视频在线看| 日本高清久久|