- 相關(guān)推薦
C語(yǔ)言條件語(yǔ)句知識(shí)點(diǎn)
引導(dǎo)語(yǔ);條件語(yǔ)句是一個(gè)表達(dá)式的返回值都可以用來(lái)判斷真假,除非沒(méi)有任何返回值的void型和返回?zé)o法判斷真假的結(jié)構(gòu)。以下是百分網(wǎng)小編分享給大家的C語(yǔ)言條件語(yǔ)句知識(shí)點(diǎn),歡迎參考學(xué)習(xí)!
一個(gè)表達(dá)式的返回值都可以用來(lái)判斷真假,除非沒(méi)有任何返回值的void型和返回?zé)o法判斷真假的結(jié)構(gòu)。當(dāng)表達(dá)式的值不等于0時(shí),它就是“真”,否則就是假。一樣個(gè)表達(dá)式可以包含其他表達(dá)式和運(yùn)算符,并且基于整個(gè)表達(dá)式的運(yùn)算結(jié)果可以得到一個(gè)真/假的條件值。因此,當(dāng)一個(gè)表達(dá)式在程序中被用于檢驗(yàn)其真/假的值時(shí),就稱(chēng)為一個(gè)條件。
一、if語(yǔ)句
if(表達(dá)式) 語(yǔ)句1;
如果表達(dá)式的值為非0,則執(zhí)行語(yǔ)句1,否則跳過(guò)語(yǔ)句繼續(xù)執(zhí)行下面的語(yǔ)句。
如果語(yǔ)句1有多于一條語(yǔ)句要執(zhí)行時(shí), 必須使用{和} 把這些語(yǔ)句包括在其中, 此時(shí)條件語(yǔ)句形式為:
if(表達(dá)式)
{
語(yǔ)句體1;
}
例如:
if(x>=0) y=x;
if(a||b&&c)
{
z=a+b;
c+=z;
}
二、if--else語(yǔ)句
除了可以指定在條件為真時(shí)執(zhí)行某些語(yǔ)句外,還可以在條件為假時(shí)執(zhí)行另外一段代碼。在C語(yǔ)句中利用else語(yǔ)句來(lái)達(dá)到這個(gè)木的。
if(表達(dá)式) 語(yǔ)句1;
else 語(yǔ)句2;
同樣,當(dāng)語(yǔ)句1或語(yǔ)句2是多于一個(gè)語(yǔ)句時(shí),需要用{}把語(yǔ)句括起來(lái)。
例如:
if(x>=0) y=x;
else y=-x;
三、if--else if--else結(jié)構(gòu)。
if(表達(dá)式1)
語(yǔ)句1;
else if(表達(dá)式2)
語(yǔ)句2;
else if(表達(dá)式3)
語(yǔ)句3;
.
.
.
else
語(yǔ)句n;
這種結(jié)構(gòu)是從上到下逐個(gè)對(duì)條件進(jìn)行判斷,一旦發(fā)現(xiàn)條件滿點(diǎn)足就執(zhí)行與它有關(guān)的語(yǔ)句, 并跳過(guò)其它剩余階梯;若沒(méi)有一個(gè)條件滿足,則執(zhí)行最后一個(gè)else 語(yǔ)句n。最后這個(gè)else常起著缺省條件的作用。同樣,如果每一個(gè)條件中有多于一條語(yǔ)句要執(zhí)行時(shí),必須使用{和}把這些語(yǔ)句包括在其中。
條件語(yǔ)句可以嵌套,這種情況經(jīng)常碰到,但條件嵌套語(yǔ)句容易出錯(cuò),其原因主要是不知道哪個(gè)if對(duì)應(yīng)哪個(gè)else。
例如:
if(x>20||x<-10)
if(y<=100&&y>x)
printf(Good);
else
printf(Bad);
對(duì)于上述情況, Turbo C2.0規(guī)定: else語(yǔ)句與最近的一個(gè)if語(yǔ)句匹配, 上例中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必須用花括號(hào)。如下所示:
if(x>20||x<-10)
{
if(y<=100&&y>x)
printf(Good);
}
else
printf(Bad);
下面舉幾個(gè)例子:
1.輸入一個(gè)數(shù),如果大于0,輸出plus;如果是負(fù)數(shù),輸出negative;如果正好是0,則輸出zero。
main()
{
float num;
scanf(%f,&f);
if(num>0)
printf(plus\n);
else if(num<0)
printf(negative\n);
else
printf(zero\n);
}
先定義兩個(gè)變量,然后輸入一個(gè)數(shù),然后判斷這個(gè)數(shù)的范圍,輸出對(duì)應(yīng)的字符串。
2.輸入一個(gè)數(shù)x,輸出y。其中y是x的絕對(duì)值。
main()
{
float x,y;
scanf(%f,&x);
if(x>=0) y=x;
else y=-x;
printf(%f\n,y);
}
程序比較簡(jiǎn)單,這兒就不分析了。
其實(shí)Trubo C 2.0把一些常用的功能都寫(xiě)好了,我們只需要使用就可。例如求絕對(duì)值的功能在C的庫(kù)里面就有?聪旅娴模
#include math.h
main()
{
float x,y;
scanf(%f,&x);
y=fabs(x); /*求x的絕對(duì)值,然后賦值給y*/
printf(%f\n,y);
}
這個(gè)程序和上面的程序完成的功能是一模一樣的,都是求絕對(duì)值。可以看出,用下面這個(gè)方法比上面就要好一些。由于fabs()是一個(gè)函數(shù),系統(tǒng)自帶的,所以在使用它的時(shí)候,我們必須把它所在的庫(kù)文件math.h包含都程序中,即程序最前面一行。類(lèi)似的還有求開(kāi)方sqrt(),求指數(shù)冪exp()等等,這些與數(shù)學(xué)方面有關(guān)的函數(shù)都在math.h里面。具體哪些有哪些沒(méi)有,在什么庫(kù)里面,可以查看一些手冊(cè)。
3.輸入x,輸出y,x和y滿足關(guān)系:
x<-5 y=x;
-5<=x<1 y=2*x+5;
1<=x<4 y=x+6;
x>=4 y=3*x-2;
程序如下:
main()
{
float x,y;
scanf(%f,&x);
if(x<-5)
y=x;
else if(-5<=x&&x<1)
y=2*x+5;
else if(1<=x&&x<4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);
}
這里要說(shuō)明兩點(diǎn):
(1).-5<=x&&x<1不能寫(xiě)成-5<=x<1;1<=x&&x<4也不能寫(xiě)成1<=x<4;在C語(yǔ)言中,不能認(rèn)識(shí)連續(xù)不等式。
(2).y=2*x+5不能寫(xiě)成y=2x+5;y=3*x-2也不能寫(xiě)成y=3x-2;這與我們平時(shí)所寫(xiě)的方法不一樣。
4.輸入三個(gè)數(shù)x,y,z,然后按從大到小輸出。
main()
{
float x,y,z;
scanf(%f%f%f,&x,&y,&z);
if(x>=y&&x>=z)
{
printf(%f\t,x);
if(y>=z) printf(%f\t%f\n,y,z);
else printf(%f\t%f\n,z,y);
}
else if(y>=x&&y>=z)
{
printf(%f\t,y);
if(x>=z) printf(%f\t%f\n,x,z);
else printf(%f\t%f\n,z,x);
}
else
{
printf(%f\t,z);
if(x>=y) printf(%f\t%f\n,x,y);
else printf(%f\t%f\n,y,x);
}
}
說(shuō)明:這是一個(gè)典型的if語(yǔ)句嵌套結(jié)構(gòu),如果不使用括號(hào),那么if和else的對(duì)應(yīng)關(guān)系就亂了。
【C語(yǔ)言條件語(yǔ)句知識(shí)點(diǎn)】相關(guān)文章:
C語(yǔ)言使用條件語(yǔ)句08-26
C語(yǔ)言循環(huán)語(yǔ)句知識(shí)點(diǎn)10-14
C語(yǔ)言條件編譯07-22
C語(yǔ)言條件運(yùn)算符10-26
C語(yǔ)言的條件運(yùn)算符12-19
C語(yǔ)言條件編譯分析實(shí)例08-18