一:C語言有兩種選擇結構:
(1):if語句,用來實現兩個分支的選擇結構;
(2):switch語句,用來實現多分支的選擇結構;
二:if語句:
if語句的一般形式如下:
if(表達式)
語句1;
或者是:
if(表達式){
語句1;
}
說明:
【1】:if語句中的表達式可以是關系表達式,邏輯表達式,甚至是數值表達式,返回的是一個邏輯值,即真或假!
三:所有形式如下:
(1):單判斷語句
if(表達式1)
語句1;
或者是:
if(表達式1){
語句1;
}
(2):雙分支語句
if(表達式1)
語句1;
else
語句2;
或者是:
if(表達式1){
語句1;
}else{
語句2;
}
(3):多分支語句
if(表達式1)
語句1;
else if(表達式2)
語句2;
......
else if(表達式n)
語句n;
else
語句n+1;
說明:
【1】:整個語句可以寫在多行上,也可以寫在一行上;
例子:
if(x>0) y=1;else y=0;
【2】:if語句寫在多行上,都是一個整體,屬於一個語句。不要誤認為if部分是一個語句,else部分是另一個語句。在系統中對if語句編譯的時候,還要檢查是
否有else語句,如果有else語句,會把它當做if語句的部分;如果沒有else語句,則認為if語句已經結束!還要注意else語句不能作為單獨語句來結束,它必須和
if語句配對使用,而且是和最近的if語句配對,采用就近原則!
【3】:if語句不加大括號,只對第一句代碼有約束作用,後面的代碼不在約束,會按照順序往下執行;如果加上大括號會對括號裡面的所有代碼都有約束作用。
四:選擇結構語句的嵌套
if語句的嵌套:在if語句中又包含一個或多個if語句稱為if語句的嵌套。
形式如下:
(1):在if語句中再嵌套if語句
if(表達式1){
if(表達式2){
語句1;
}
}
(2):在if語句中再嵌套雙分支語句
if(表達式1){
if(表達式2){
語句1;
}else{
語句2;
}
}
(3):在if語句中嵌套多分支語句
if(表達式1){
if(表達式2){
語句1;
}else if(表達式3){
語句2;
}else if(表達式4){
語句3;
}else{
語句4;
}
}
五:用switch語句實現多分支語句
switch語句是多分支選擇語句
switch語句作用:根據表達式的值來使流程跳轉到不同的語句。
六:一般的形式如下:
(1):無break語句形式
switch(表達式){
case 常量1:
語句1;
case 常量2:
語句2;
case 常量3:
語句3;
default:
語句4;
}
(2):有break語句形式
switch(表達式){
case 常量1:
語句1;
break;
case 常量2:
語句2;
break;
case 常量3:
語句3;
break;
default:
語句4;
break;
}
說明:
【1】:switch語句後面的“表達式”,其值的類型應為整數型(包括字符型)【字符型也屬於整數形式,按照ASCII碼來存儲到計算機當中】
【2】:switch語句下面的大括號是一個復合語句,一定要打上,不打則會報錯!裡面是case關鍵字和default組合的若干語句。case後面的必須跟一個常量,
或是常量表達式。被當做標號作用,用來標識一個位置。
【3】:沒有break語句,是按照順序依次往下執行;有break語句,符合哪一種情況就執行哪一種情況下的語句,之後馬上退出整個switch語句。
【4】:switch語句的運行原理:在執行switch語句時,先計算switch後面的表達式的值,然後將它與各個case標號比較,如果與某一個case標號中的常量相同
,流程就轉到此case標號的後面的語句。如果沒有switch表達式相匹配的case常量。再檢查有沒有default語句,若有就執行default標號後面的語句,若沒有則退
出整個switch語句。
【5】:各個case標號出現的次序不影響結果,可以先出現default語句,其他case語句可以打亂。
【6】:每一個case常量必須互不相同,否則會出現矛盾現象,重復定義系統報錯!
【7】:在case語句下不需要加大括號,會自動執行case標號語句後面的所有語句!
【8】:多個case標號可以共用一組執行語句。如下:
case A:
case B:
case C:
printf("及格了!
");break;
七:多分支選擇語句嵌套:
(1):可以在switch中嵌套switch語句
switch(表達式1){
case 常量1:
switch(表達式2){
case 常量1:
語句1;
break;
case 常量2:
語句2;
break;
}
&nbs