① C語言if語句的嵌套 和 提供一些關於if else的小程序
C語言中的if-else if-else結構允許我們根據多個條件執行不同的代碼塊。這種結構從上到下逐個檢查條件,一旦找到滿足條件的語句,就會執行對應的代碼,然後跳過後續的條件檢查。如果沒有條件滿足,則執行else後面的語句。else通常起到默認條件的作用。
如果某個條件中包含多條語句,必須用{}將它們括起來。條件語句可以嵌套,但嵌套結構容易出錯,主要是因為不容易確定哪個if與哪個else匹配。Turbo C2.0規定,else總是與最近的if匹配。例如:
if(x>20||x<-10)
{
if(yx)
printf("Good");
else
printf("Bad");
}
為了使else與if(x>20||x<-10)匹配,必須使用花括弧。正確的代碼如下:
if(x>20||x<-10)
{
if(yx)
printf("Good");
}
else
printf("Bad");
下面提供幾個示常式序:
1. 輸入一個數,如果大於0,輸出plus;如果是負數,輸出negative;如果正好是0,則輸出zero。
main() {
float num;
scanf("%f",&num);
if(num>0)
printf("plus\n");
else if(num<0)
printf("negative\n");
else
printf("zero\n");
}
2. 輸入一個數x,輸出y。其中y是x的絕對值。
main() {
float x,y;
scanf("%f",&x);
if(x>=0)
y=x;
else
y=-x;
printf("%f\n",y);
}
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("%f\n",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("%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);
}
}
說明:這是一個典型的if語句嵌套結構,如果不使用括弧,那麼if和else的對應關系就亂了。