- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第五章 选择结构程序设计
第5章 选择结构程序设计;5.1 关系运算符和关系表达式;2. 关系表达式
用关系运算符将两个表达式连接起来的式子。
如:(ab)(bc) 、‘a’‘b’ 、xy 、s+fd
关系表达式的值是一个逻辑值(真或假),但C语言没有逻辑型数据,关系表达式的真、假是以 数值1和0表示。“1”代表“真”,以“0”代表“假”。
例: a=3, b=2, c=1 则
cb; 0
(a-b) = = 1; 1
b+ca; 0
f= abc; (自左至右 ) f=0
;逻辑运算符及其优先次序
C语言提供三种逻辑运算符:
(逻辑与) 、 || (逻辑或) 、! (逻辑非)
注:“”和“|| ”是“双目(元)运算符”,它要求有两个运算量操作数。而“! ”是“单目(元)运算符”,只要求有一个运算量。
运算规则:ab a、b同时为真,ab为真;
a||b a、b之一为真,a||b为真;
!a a为真,!a为假。 a为假,!a为真
运算优先顺序:
(1)!→→||
(2)和||低于关系运算符,
!高于算术运算符
; 例: 2 || 4-!0 值为:“ 1 ”
‘b’ 0 值为:“ 0 ”
5384-!0 值为:“0”;
1. if 语句的三种形式
1. if (表达式) 语句 (单分支)
如: if(g=80) printf(“%d”,g);
;说明:
(1)条件表达式必须用圆括号括起来。
(2)条件表达式可以逻辑表达式或关系表达式,也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量 。
如:if (b) printf(“%d\n”,x);
(3)else子句不能单独使用,必须配合if语句使用。
(4)if和else后均可放置复合语句。 复合语句是用{}括起来的多个C语句。
例:由小到大输出两个数。
Main()
{ Float a,b,t;
Scanf(“%f,%f”,a,b);
If (ab)
{t=a;a=b;b=t;}
Printf(“%5.2f,%5.2f\n”,a,b);};
2. if 语句的嵌套
if ( )
if ( ) 语句
else 语句
else
if ( ) 语句
else 语句
这里,else总是与最近的未配对的if配对。
把内嵌的语句写在{}中不容易出错
;#include stdio.h
main( )
{int numb1, sign;
printf(“Please input an number\n”);
scanf(“%d”,numb1);
if(numb10)
sign = -1;
else if(numb1= = 0)
sign = 0;
else sign = 1;
printf(“sign(x)=%d\n”,sign);}
;
3. 条件运算符及其表达式
条件运算符为?和:,是一个三目运算符,有三个参与运算的量。
一般形式:表达式1? 表达式2: 表达式3
求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。
条件表达式通常用于赋值语句之中,表达式的值真、假时都执行赋值语句,且均赋给同一变量。
例如:由条件语句: if(ab) max=a;else max=b;
执行该语句的语义是:如ab为真,则把a赋予max,否则把b 赋予max。
;使用条件表达式时,注意:
1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?a:b
2. 条件运算符?和:是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
ab?a:cd?c:d应理解为ab?a:(cd?c:d)
4.条件表达式中的三个表达式的数据类型可以不同。如x ? ‘ a ‘ : ‘ b ‘。表达式的类型取表达式2和表达式3中类型较高者。(int和f
文档评论(0)