① 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的对应关系就乱了。