(6.12)-第11課(3.3節-switch語句)C語言程序設計_第1頁
(6.12)-第11課(3.3節-switch語句)C語言程序設計_第2頁
(6.12)-第11課(3.3節-switch語句)C語言程序設計_第3頁
(6.12)-第11課(3.3節-switch語句)C語言程序設計_第4頁
(6.12)-第11課(3.3節-switch語句)C語言程序設計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

switch語句選擇結構程序設計用switch語句實現多分支選擇結構switch(表達式){case常量1:語句1case常量2:語句2?? ? case常量n:語句ndefault:

語句n+1}括號內的“表達式”,其值的類型應為整數類型(包括字符型)花括號內包含多個以關鍵字case開頭的語句行和最多一個以default開頭的行。case后面跟一個常量(或常量表達式)執行switch語句時,先計算switch后面的“表達式”的值,然后將它與各case標號比較,如果與某一個case標號中的常量相同,流程就轉到此case標號后面的語句。如果沒有與switch表達式相匹配的case常量,流程轉去執行default標號后面的語句用switch語句實現多分支選擇結構Default子句可以省略case標號只起標記的作用。在執行switch語句時,根據switch表達式的值找到匹配的入口標號,在執行完一個case標號后面的語句后,就從此標號開始執行下去,不再進行判斷。因此,一般情況下,在執行一個case子句后,應當用break語句使流程跳出switch結構多個case標號可以共用一組執行語句switch(表達式){case常量1:語句1case常量2:語句2?? ? case常量n:語句ndefault:

語句n+1}【例1:】分析以下程序,寫出該程序的輸出結果voidmain(){intx=1,a=0,b=0;

switch(x){

case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%d\n",a,b);

}switch語句也可以嵌套使用【例2:】分析以下程序,寫出該程序的輸出結果#include<stdio.h>voidmain(){

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

printf("a=%d,b=%d\n“,a,b);}【例3:】分析以下程序,寫出該程序的輸出結果#include<stdio.h>voidmain(){

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:a++;break;

case1:b++;break;

}break;

case2:a++;b++;break;

case3:a++;b++;

}

printf("a=%d,b=%d\n“,a,b);}【例4:】解題思路使用一個整型變量k存放百分制分數除以10的商,由于分數在[0,100]范圍內,所以k的只可能是[0,10]范圍內的整數#include<stdio.h>voidmain(){floatscore;chargrade;intk;printf("請輸入學生成績:");

scanf("%f",&score);

k=score/10;

switch(k)

{case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;default:grade='E';}printf("成績是%5.1f,相應的等級是%c\n",score,grade);}任意輸入一個百分制成績,要求輸出成績等級‘A','B','C’,'D’,'E'。其中90分以上為‘A',80-89分為‘B’,70-79分為‘C’,60-69分為'D',60分以下為'E'用switch語句實現多分支選擇結構【例5:】用switch語句處理菜單命令。在許多應用程序中,用菜單對流程進行控制,例如從鍵盤輸入一個‘A’或‘a’字符,就會調用action1函數執行A操作,輸入一個‘B’或‘b’字符,就會調用action2函數執行B操作#include<stdio.h>voidmain(){ voidaction1(int,int),action2(int,int); //函數聲明

charch; inta=15,b=23; ch=getchar(); switch(ch) { case'a': case'A':action1(a,b);break;

//調用action1函數,執行A操作

case'b': case'B':action2(a,b);break; //調用action2函數,執行B操作

default:printf(“輸入錯誤!\n”); //如果輸入其他字符,輸出錯誤提示

}}voidaction1(intx,inty){printf("x+y=%d\n",x+y);}voidaction2(intx,inty) {printf("x*y=%d\n",x*y);}條件運算符表達式1?表達式2:表達式3條件運算符由兩個符號(?和:)組成,必須一起使用。要求有3個操作對象,稱為三目(元)運算符,它是C語言中唯一的一個三目運算符條件運算符的執行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值if(a>b) max=a;else max=b;max=(a>b)?a:b;條件運算符的使用【例6:】輸入一個字符,判別它是否大寫字母,如果是,將它轉換成小寫字母;如果不是,不轉換。然后輸出最后得到的字符#include<stdio.h>

voidmain()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論