c语言中if语句的嵌套怎么使用

Python018

c语言中if语句的嵌套怎么使用,第1张

先判断第一层,如果符合,再判断内嵌第二层,以此类推。比如:

if (a>0)

if(a>3) printf("hello")

else if((a>0)&&(a<3)) printf("OK")

即首先判断a是否大于0,只有这个条件成立了,然后再判断下面的if。

#include<stdio.h>

int main()

{

int x=1,y=1,z=10

if(z<0)//不满足,以下4行不执行

if(y>0)

x=3

else

x=5

printf("%d\t",x) //输出1,跳格

if(z=y<0)//y<0不满足,为假,z被赋值为0

x=3 //此行不执行

else if(y==0)//y==0不满足,执行下面的else子句

x=5

else

x=7

printf("%d\t",x) //输出7,跳格

printf("%d\t",z) //输出0,跳格

}

三、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(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)

}

程序比较简单,这儿就不分析了。

其实trubo

c

2.0把一些常用的功能都写好了,我们只需要使用就可。例如求绝对值的功能在c的库里面就有。看下面的:

#include

math.h

main()

{

float

x,y

scanf(%f,&x)

y=fabs(x)

/*求x的绝对值,然后赋值给y*/

printf(%f\n,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(%f\n,y)

}

这里要说明两点:

(1).-5<=x&&x<1不能写成-5<=x<11<=x&&x<4也不能写成1<=x<4在c语言中,不能认识连续不等式。

(2).y=2*x+5不能写成y=2x+5y=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的对应关系就乱了。