条件语句

 我来答
123zongze
推荐于2017-09-03
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
一个表达式的返回值都可以用来判断真假,除非没有任何返回值的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(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<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的对

应关系就乱了。

四、switch--case语句
在编写程序时, 经常会碰到按不同情况分转的多路问题, 这时可用嵌套if

-else-if语句来实现, 但if-else-if语句使用不方便, 并且容易出错。对这种

情况, Turbo C2.0提供了一个开关语句。开关语句格式为:
switch(变量)
{
case 常量1:
语句1或空;
case 常量2:
语句2或空;
.
.
.
case 常量n:
语句n或空;
default:
语句n+1或空;
}

执行switch开关语句时,将变量逐个与case后的常量进行比较,若与其中一个相

等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语

句。
注意:
1.switch中变量可以是数值,也可以是字符,但必须是整数。
2.可以省略一些case和default。
3.每个case或default后的语句可以是语句体,但不需要使用{和}括起来。
例如:
main()
{
int x,y;
scanf(%d,&x);
witch(x)
{
case 1:
y=x+1;
break; /*退出开关语句,遇到break才退出*/
case 4:
y=2*x+1;
break;
default:
y=x--;
break;
}
printf(%d\n,y);
}

从上面的例子可以看出,用开关语句编的程序一定可以用if语句做。那么在什

么情况下需要用switch语句呢?一般在出现比较整的情况下或者能转化成比较

整数的情况下使用。看下面的例子:

例子:一个学生的成绩分成五等,超过90分的为'A',80-89的为'B',70-79为

'C',60-69为'D',60分以下为'E'。现在输入一个学生的成绩,输出他的等级



(1).用if语句
main()
{
float num;
char grade;
scanf(%d,&num);
if(num>=90) grade='A';
else if(num>=80&&num<89) grade='B';
else if(num>=70&&num<79) grade='C';
else if(num>=60&&num<69) grade='D';
else grade='E';
printf(%c,grade);
}

(2).用switch语句
main()
{
int num;
char grade;
scanf(%d,&num);
num/=10;
switch(num)
{
case 10:
case 9:
grade='A';
break;
case 8:
grade='B';
break;
case 7:
grade='C';
break;
case 6:
grade='D';
break;
default:
grade='E';
break;
}
printf(%c,grade);
}

说明一点,并不是每个case里面有都语句,有时侯里面是空的,就好象这一题

。switch语句执行的顺序是从第一case判断,如果正确就往下执行,直到break

;如果不正确,就执行下一个case。所以在这里,当成绩是100分时,执行case

10:然后往下执行,grade='A';break;退出。
想想看,这里为什么要用num/=10;?
假设当程序中有浮点数时怎么办呢?
安樱依苑博
2020-05-01 · TA获得超过3733个赞
知道大有可为答主
回答量:3127
采纳率:35%
帮助的人:216万
展开全部
一个表达式的返回值都可以用来判断真假,除非没有任何返回值的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(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<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的对
应关系就乱了。
四、switch--case语句
在编写程序时,
经常会碰到按不同情况分转的多路问题,
这时可用嵌套if
-else-if语句来实现,
但if-else-if语句使用不方便,
并且容易出错。对这种
情况,
Turbo
C2.0提供了一个开关语句。开关语句格式为:
switch(变量)
{
case
常量1:
语句1或空;
case
常量2:
语句2或空;
.
.
.
case
常量n:
语句n或空;
default:
语句n+1或空;
}
执行switch开关语句时,将变量逐个与case后的常量进行比较,若与其中一个相
等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语
句。
注意:
1.switch中变量可以是数值,也可以是字符,但必须是整数。
2.可以省略一些case和default。
3.每个case或default后的语句可以是语句体,但不需要使用{和}括起来。
例如:
main()
{
int
x,y;
scanf(%d,&x);
witch(x)
{
case
1:
y=x+1;
break;
/*退出开关语句,遇到break才退出*/
case
4:
y=2*x+1;
break;
default:
y=x--;
break;
}
printf(%d\n,y);
}
从上面的例子可以看出,用开关语句编的程序一定可以用if语句做。那么在什
么情况下需要用switch语句呢?一般在出现比较整的情况下或者能转化成比较
整数的情况下使用。看下面的例子:
例子:一个学生的成绩分成五等,超过90分的为'A',80-89的为'B',70-79为
'C',60-69为'D',60分以下为'E'。现在输入一个学生的成绩,输出他的等级

(1).用if语句
main()
{
float
num;
char
grade;
scanf(%d,&num);
if(num>=90)
grade='A';
else
if(num>=80&&num<89)
grade='B';
else
if(num>=70&&num<79)
grade='C';
else
if(num>=60&&num<69)
grade='D';
else
grade='E';
printf(%c,grade);
}
(2).用switch语句
main()
{
int
num;
char
grade;
scanf(%d,&num);
num/=10;
switch(num)
{
case
10:
case
9:
grade='A';
break;
case
8:
grade='B';
break;
case
7:
grade='C';
break;
case
6:
grade='D';
break;
default:
grade='E';
break;
}
printf(%c,grade);
}
说明一点,并不是每个case里面有都语句,有时侯里面是空的,就好象这一题
。switch语句执行的顺序是从第一case判断,如果正确就往下执行,直到break
;如果不正确,就执行下一个case。所以在这里,当成绩是100分时,执行case
10:然后往下执行,grade='A';break;退出。
想想看,这里为什么要用num/=10;?
假设当程序中有浮点数时怎么办呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万知人
2011-05-14 · TA获得超过8688个赞
知道小有建树答主
回答量:1062
采纳率:0%
帮助的人:635万
展开全部
每个人的条件都是不一样的,但只要奋斗每个人都会有好的条件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1fd2328
2011-05-15
知道答主
回答量:58
采纳率:0%
帮助的人:20.5万
展开全部
你的问题太不清楚了,是if else?还是别的??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式