第三章C語言程序控制結構if、語句第三章C語言程序控制結構if、語句C程序的三種基本結構:順序結構操作S1操作S2操作S3選擇結構結束S4操作S1條件操作S2操作S3結束S4循環結構操作S1條件操作S2結束S3選擇結構程序設計選擇結構對條件進行判斷,當條件成立或不成立時分別執行不同的語句序列。不管執行哪一個語句序列,執行結束后,控制都轉移到同一出口的地方。設計選擇結構程序需要考慮的兩個問題:在C語言中用什么語句實現選擇結構一般用關系表達式或邏輯表達式來表示選擇條件!語句或語句任務三找出最高分和最低分任務三找出最高分和最低分將評委給出的分數中的最高分和最低分找出來(先解決只有三個分數的情況)。任務描述教學目標熟練掌握語句的使用方法。評分等級設置3.3兩個數據比較大小3.1三個數據中找最大值和最小值3.23.1兩個數據比較大小問題:輸入兩個整數,輸出其中較大的數。3.1兩個數據比較大小確定算法開始定義整型變量a、b、max找出a、b中較大的數,賦值給max從鍵盤輸入a、b輸出max3.1兩個數據比較大小b>max?max=amax=b找出a、b中較大的數,賦值給max方法一:方法一:3.1兩個數據比較大小表達式)語句;1、if語句(第一種形式)表達式語句含義:表達式真(0),執行語句表達式假(=0)c語言程序轉化為流程圖,跳過語句用if語句構成分支結構,根據給定的條件進行判斷,以決定執行某個分支程序段。
3.1兩個數據比較大小()inta,b,max;(“\:”)scanf(“%d%d”,&a,&b);(“max=%d”,max);getch();3.1兩個數據比較大小輸入提示#()inta,b,max;(“\:”)scanf(“%d%d”,&a,&b);max=a;if((){int這是什么表達式?表達式語句3.1兩個數據比較大小找出a、b中較大的數,賦值給max方法二:方法二:max=b3.1兩個數據比較大小2、if語句(第二種形式)含義:表達式真(0),執行語句1,表達式假(=0),執行語句2。表達式)語句1else語句2;3.1兩個數據比較大小2、if語句(第二種形式)表達表達式)語句1else語句2;max=a;=b;3.1兩個數據比較大小#()inta,b,max;(“\:”)scanf(“%d%d”,&a,&b);(“max=%d”,max);getch();3.1兩個數據比較大小#()inta,b,max;(“\:”)scanf(“%d%d”,&a,&b);max=a;=b;(“max=%d”,max);getch();表達式)語句1else語句2;這是一種最常用的二選一的選擇。
解決類似的問題可以簡單地用條件表達式來實現。3.1兩個數據比較大小一般形式:表達式1?表達式2條件運算符的值:如果表達式1的值為真,則取表達式2的值c語言程序轉化為流程圖,否取表達式3的值例如:if(a>b)max=a;=b;可用條件表達式寫為max=(a>b)?a:b;max=條件運算符通常用于賦值語句中條件運算符#()inta,b,max;(“\:”)scanf(“%d%d”,&a,&b);max=(a>b)?a:b;(“max=%d”,max);getch();3.1兩個數據比較大小問題:輸入兩個整數,輸出其中較大的數。問題擴展:輸入3個整數,輸出最大數和最小數。評分等級設置3.3三個數據中找最大值和最小值3.2兩個數據比大小3.13.2三個數據中找最大值和最小值確定算法開始定義整型變量a、b、c、max、min找出a、b、c中最大數賦值給max,最小數賦值給min從鍵盤輸入a、b、c輸出max、min3.2三個數據中找最大值和最小值輸出max、=a,min=bmax=b,min=ac>()inta,b,c,max,min;(“:\n”);{max=a;min=b;}else{max=b;min=a;}if(c>max)max=c;else(c main() (“ score:”);scanf(“%d”,&s); (“\nThe grade s>=90&&s=80&&s=70&&s=60&&s=s>=95 結果會怎樣? 3.3 評分等級設置 C語言還提供了另一種用于多分支選擇的語句。
h語句(不帶break )的一般形式 (表達式) case常量表達式1: 語句1; case 常量表達式2: 語句2; case常量表達式n: 語句n; 語義:計算表達式的值,并 逐個與其后的常量表達 式值相比較,當表達式 的值與某個常量表達式 的值相等時,則執行之 后的語句;如表達式的 值與所有case后的常量 表達式均不相同,則執 行后的語句。 # main() (“ score:”);scanf(“%d”,&s); (“\nThe grade (“A\n”);case (“B\n”);case (“C\n”);case (“D\n”);: (“E\n”); 3.3評分等級設置 input score:83 運行結果: 3.3評分等級設置 (表達式) case常量表達式1: 語句1; case 常量表達式2: 語句2; case常量表達式n: 語句n; 語義:計算表達式的值,并 逐個與其后的常量表達 式值相比較,當表達式 的值與某個常量表達式 的值相等時,則執行之 后的語句,然后不再進行 判斷,繼續執行后面所 有case后的語句(包括 后的語句)。
h語句(不帶break )的一般形式 3.3 評分等級設置 C語言還提供了一種break語句,用于跳出語句。 h(帶break )語句的一般形式 (表達式) case常量表達式1: 語句1;break; case 常量表達式2: 語句2;break; case常量表達式n: 語句n;break; # main() (“ score:”);scanf(“%d”,&s); (“\nThe grade (“A\n”);break;case (“B\n”);break; case (“C\n”);break; case (“D\n”);break; : (“E\n”); break; 3.3評分等級設置 input score:83 運行結果: (1)在每個case后的各常量表達式的值應互不能相同。(2)在每個case后允許有多個語句,可以不用{}括起來. (3)許多個case可以共用一個語句序列。 (4)如果每個case中都有break語句,那么case和 出現的次序不會影響程序的運行結果。
(a) a=a+1;(“%d”,a);break;case (“Ok”);break;: (“error”);break; case a=a+1;(“%d”,a);break;case 子句可以省略。(6)字符常數出現在case中,它們會自動轉換成整型。 (a) case1:(a) case1:a++;break; case 2:a--;break;}break; case a++;break;case a+=2;break;}char scanf(“%c”,&a);(a) (“a=1”);break;case (“a=2”);break;case (“a=3”);break;: (“a=ok”);break; 可以嵌套使用,要求內層的必須完全包含在外層的某個case中,內外層的 case含相同的常數,不會引起誤會。. 語句只能進行相等性檢查,而if不但可進行相等性檢查,還可以計算關系或邏輯表達式。
因 此,語句不能完全替代if語句。 了解結構化程序設計的思想 掌握 語句的嵌套使用重點 賦值表達式的應用難點 if語句的嵌套使用 課后任務 復習今天所學習的內容,看書上的例題。(教材第三章3.1-3.9) 做教材P43~48習題一、選擇題:2、8、12 二、填空題:1~7 三、程序填空題:1 中文 條件運算符 條件表達式 條件語句 嵌套 專業詞匯(