C语言里if语句里是可以嵌套for循环的(if语句里可以放C语言里的任意的执行语句)。
成都创新互联10多年成都定制网站服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都定制网站及推广,对假山制作等多个行业拥有多年的网站运维经验的网站建设公司。
举例说:
char yn;
int i;
printf("需要打印1到10之间的所有奇数吗(Y/N)?\n");
scanf("%c",yn);
if(yn=='Y'||yn=='y')
{
for(i=1;i10;i+=2)
printf("%d ",i);
printf("\n");
}
else
printf("那就不打印了\n");
三、if--else
if--else结构。
if(表达式1)
语句1;
else
if(表达式2)
语句2;
else
if(表达式3)
语句3;
.
.
.
else
语句n;
这种结构是从上到下逐个对条件进行判断,一旦发现条件满点足就执行与它有关的语句,
并跳过其它剩余阶梯;若没有一个条件满足,则执行最后一个else
语句n。最后这个else常起着缺省条件的作用。同样,如果每一个条件中有多于一条语句要执行时,必须使用{和}把这些语句包括在其中。
条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。
例如:
if(x20||x-10)
if(y=100yx)
printf(good);
else
printf(bad);
对于上述情况,
turbo
c2.0规定:
else语句与最近的一个if语句匹配,
上例中的else与if(y=100yx)相匹配。为了使else与if(x20||x-10)相匹配,
必须用花括号。如下所示:
if(x20||x-10)
{
if(y=100yx)
printf(good);
}
else
printf(bad);
下面举几个例子:
1.输入一个数,如果大于0,输出plus;如果是负数,输出negative;如果正好是0,则输出zero。
main()
{
float
num;
scanf(%f,f);
if(num0)
printf(plus\n);
else
if(num0)
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=x1
y=2*x+5;
1=x4
y=x+6;
x=4
y=3*x-2;
程序如下:
main()
{
float
x,y;
scanf(%f,x);
if(x-5)
y=x;
else
if(-5=xx1)
y=2*x+5;
else
if(1=xx4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);
}
这里要说明两点:
(1).-5=xx1不能写成-5=x1;1=xx4也不能写成1=x4;在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=yx=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=xy=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的对应关系就乱了。
if(m%i==0) return 0;如果有m%i==0成立,那么返回0。返回0表示直接退出当前函数,并返回0给调用函数。
1 执行流程
对于基本语句:if(条件) 语句1 else 语句2
执行流程为
如果条件成立 则执行语句1,否则执行语句2。
2 当语句1或语句2又为一个条件语句时就构成了条件嵌套。
嵌套时最基本的组合原则是,else与其上同一个层次中、最近一个、未配对的if组合。
如:if ()
if () 语句1
if ()语句2
else 语句3
则 else 与第三个if配对
再如 if ()
{ if () 语句1
if ()语句2 }
else 语句3
则 else 与第一个if配对,(在同一层次)
3 {} 是构成复合语句,当语句1或2为多个语句时,需要由{}括起来,构成一个符合语句。
或者通过{} 改变配对次序(如上例)
可以。但是需要注意。
如果ccd()的代码在main()前面,则可以直接使用;但是如果在后面,则需要在int main()的前面写下一行代码:
void ccd();
分号不能省略,作为声明。
先判断第一层,如果符合,再判断内嵌第二层,以此类推。比如:
if (a0)
if(a3) printf("hello");
else if((a0)(a3)) printf("OK");
即首先判断a是否大于0,只有这个条件成立了,然后再判断下面的if。