關(guān)鍵字:if語(yǔ)句分析、 switch語(yǔ)句分析
1. if語(yǔ)句分析
-
if語(yǔ)句用于根據(jù)條件選擇執(zhí)行語(yǔ)句 -
else不能獨(dú)立存在且總是與它最近的if向匹配 -
else語(yǔ)句后可以接連其它if語(yǔ)句
if( condition )
{
// statement 1
}
else
{
// statement 2
}
-
if語(yǔ)句中零值比較的注意點(diǎn)
1)bool型變量應(yīng)該出現(xiàn)于條件中,不需要進(jìn)行比較
bool b = TRUE;
if( b)
{
// statement 1
}
else
{
// statement 2
}
2)變量和0值進(jìn)行比較時(shí),0值應(yīng)該出現(xiàn)在比較符號(hào)的左邊
int i = 1;
if( 0 == i)
{
// statement 1
}
else
{
// statement 2
}
3)float型變量不能直接進(jìn)行0值比較,需要定義精度
#define EPSINON 0.0000001
float f = 0.0;
if ((-EPSINON <= f) && (f <= EPSINON) )
{
// statement 1
}
else
{
// statement 2
}
2. switch語(yǔ)句分析
-
switch語(yǔ)句對(duì)應(yīng)單個(gè)條件多個(gè)分支的情形 -
case語(yǔ)句分支必須要有break,否則會(huì)導(dǎo)致分支重疊 -
default語(yǔ)句有必要加上,以處理特殊情況
-
case語(yǔ)句中的值只能是整形或字符型 -
case語(yǔ)句的排列順序
按字母或數(shù)字順序排列各條語(yǔ)句
正常情況放在前面,異常情況放在后面
default語(yǔ)句只能用于處理真正的默認(rèn)情況
3. if和switch使用示例
#include <stdio.h>
void f1(int i)
{
if( i < 6 )
{
printf("Failed!\n");
}
else if( (6 <= i) && (i <= 8) )
{
printf("Good!\n");
}
else
{
printf("Perfect!\n");
}
}
void f2(char i)
{
switch(i)
{
case 'c':
printf("Compile\n");
break;
case 'd':
printf("Debug\n");
break;
case 'o':
printf("Object\n");
break;
case 'r':
printf("Run\n");
break;
default:
printf("Unknown\n");
break;
}
}
int main()
{
f1(5);
f1(9);
f1(7);
f2('o');
f2('d');
f2('e');
return 0;
}
輸出結(jié)果:
Failed!
Perfect!
Good!
Object
Debug
Unknown
4. 小結(jié)
-
if語(yǔ)句適用于復(fù)雜邏輯進(jìn)行判斷的情形中 -
switch語(yǔ)句使用于對(duì)離散值進(jìn)行判斷的情形中 -
if語(yǔ)句和switch語(yǔ)句在功能上可以相互替換 -
if語(yǔ)句對(duì)于按片分支判斷的情形更加簡(jiǎn)潔 -
switch語(yǔ)句對(duì)于多分支判斷的情形更加簡(jiǎn)潔
聲明:此文章為本人在學(xué)習(xí)狄泰軟件學(xué)院《C語(yǔ)言深度解析》所做的筆記,文章中包含狄泰軟件資料內(nèi)容一切版權(quán)歸狄泰軟件所有!

