C語言條件語句知識點
引導語;條件語句是一個表示式的返回值都可以用來判斷真假,除非沒有任何返回值的void型和返回無法判斷真假的結構。以下是本站小編分享給大家的C語言條件語句知識點,歡迎參考學習!
一個表示式的返回值都可以用來判斷真假,除非沒有任何返回值的void型和返回無法判斷真假的結構。當表示式的值不等於0時,它就是“真”,否則就是假。一樣個表示式可以包含其他表示式和運算子,並且基於整個表示式的運算結果可以得到一個真/假的條件值。因此,當一個表示式在程式中被用於檢驗其真/假的值時,就稱為一個條件。
一、if語句
if(表示式) 語句1;
如果表示式的值為非0,則執行語句1,否則跳過語句繼續執行下面的語句。
如果語句1有多於一條語句要執行時, 必須使用{和} 把這些語句包括在其中, 此時條件語句形式為:
if(表示式)
{
語句體1;
}
例如:
if(x>=0) y=x;
if(a||b&&c)
{
z=a+b;
c+=z;
}
二、if--else語句
除了可以指定在條件為真時執行某些語句外,還可以在條件為假時執行另外一段程式碼。在C語句中利用else語句來達到這個木的。
if(表示式) 語句1;
else 語句2;
同樣,當語句1或語句2是多於一個語句時,需要用{}把語句括起來。
例如:
if(x>=0) y=x;
else y=-x;
三、if--else if--else結構。
if(表示式1)
語句1;
else if(表示式2)
語句2;
else if(表示式3)
語句3;
.
.
.
else
語句n;
這種結構是從上到下逐個對條件進行判斷,一旦發現條件滿點足就執行與它有關的語句, 並跳過其它剩餘階梯;若沒有一個條件滿足,則執行最後一個else 語句n。最後這個else常起著預設條件的作用。同樣,如果每一個條件中有多於一條語句要執行時,必須使用{和}把這些語句包括在其中。
條件語句可以巢狀,這種情況經常碰到,但條件巢狀語句容易出錯,其原因主要是不知道哪個if對應哪個else。
例如:
if(x>20||x<-10)
if(y<=100&&y>x)
printf(Good);
else
printf(Bad);
對於上述情況, Turbo C2.0規定: else語句與最近的'一個if語句匹配, 上例中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必須用花括號。如下所示:
if(x>20||x<-10)
{
if(y<=100&&y>x)
printf(Good);
}
else
printf(Bad);
下面舉幾個例子:
1.輸入一個數,如果大於0,輸出plus;如果是負數,輸出negative;如果正好是0,則輸出zero。
main()
{
float num;
scanf(%f,&f);
if(num>0)
printf(plusn);
else if(num<0)
printf(negativen);
else
printf(zeron);
}
先定義兩個變數,然後輸入一個數,然後判斷這個數的範圍,輸出對應的字串。
2.輸入一個數x,輸出y。其中y是x的絕對值。
main()
{
float x,y;
scanf(%f,&x);
if(x>=0) y=x;
else y=-x;
printf(%fn,y);
}
程式比較簡單,這兒就不分析了。
其實Trubo C 2.0把一些常用的功能都寫好了,我們只需要使用就可。例如求絕對值的功能在C的庫裡面就有。看下面的:
#include math.h
main()
{
float x,y;
scanf(%f,&x);
y=fabs(x); /*求x的絕對值,然後賦值給y*/
printf(%fn,y);
}
這個程式和上面的程式完成的功能是一模一樣的,都是求絕對值。可以看出,用下面這個方法比上面就要好一些。由於fabs()是一個函式,系統自帶的,所以在使用它的時候,我們必須把它所在的庫檔案math.h包含都程式中,即程式最前面一行。類似的還有求開方sqrt(),求指數冪exp()等等,這些與數學方面有關的函式都在math.h裡面。具體哪些有哪些沒有,在什麼庫裡面,可以檢視一些手冊。
3.輸入x,輸出y,x和y滿足關係:
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(%fn,y);
}
這裡要說明兩點:
(1).-5<=x&&x<1不能寫成-5<=x<1;1<=x&&x<4也不能寫成1<=x<4;在C語言中,不能認識連續不等式。
(2).y=2*x+5不能寫成y=2x+5;y=3*x-2也不能寫成y=3x-2;這與我們平時所寫的方法不一樣。
4.輸入三個數x,y,z,然後按從大到小輸出。
main()
{
float x,y,z;
scanf(%f%f%f,&x,&y,&z);
if(x>=y&&x>=z)
{
printf(%ft,x);
if(y>=z) printf(%ft%fn,y,z);
else printf(%ft%fn,z,y);
}
else if(y>=x&&y>=z)
{
printf(%ft,y);
if(x>=z) printf(%ft%fn,x,z);
else printf(%ft%fn,z,x);
}
else
{
printf(%ft,z);
if(x>=y) printf(%ft%fn,x,y);
else printf(%ft%fn,y,x);
}
}
說明:這是一個典型的if語句巢狀結構,如果不使用括號,那麼if和else的對應關係就亂了。