嵌入式Linux下C程序设计-03分支结构.ppt

上传人:小飞机 文档编号:6569738 上传时间:2023-11-13 格式:PPT 页数:25 大小:656KB
返回 下载 相关 举报
嵌入式Linux下C程序设计-03分支结构.ppt_第1页
第1页 / 共25页
嵌入式Linux下C程序设计-03分支结构.ppt_第2页
第2页 / 共25页
嵌入式Linux下C程序设计-03分支结构.ppt_第3页
第3页 / 共25页
嵌入式Linux下C程序设计-03分支结构.ppt_第4页
第4页 / 共25页
嵌入式Linux下C程序设计-03分支结构.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《嵌入式Linux下C程序设计-03分支结构.ppt》由会员分享,可在线阅读,更多相关《嵌入式Linux下C程序设计-03分支结构.ppt(25页珍藏版)》请在三一办公上搜索。

1、嵌入式Linux下C程序设计,主讲:成宝宗,关系运算及其表达式,所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。例如,“a b”中的“”表示一个大于关系运算。如果a的值是5,b的值是3,则大于关系运算“”的结果为“真”,即条件成立;如果a的值是2,b的值是3,则大于关系运算“”的结果为“假”,即条件不成立。,关系运算符,1关系运算符C语言提供6种关系运算符:(大于),=(大于或等于),=(等于),!=(不等于)注意:在语言中,“等于”关系运算符是双等号“=”,而不是单等号“=”(赋值运算符)。,关系表达式,1关系表达式的概念 所谓关系表达式是指,用

2、关系运算符将两个表达式连接起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:ab,a+bc-d,(a=3)=b,(ab)=(bc)2关系表达式的值逻辑值(非“真”即“假”)。由于语言没有逻辑型数据,所以用整数“”表示“逻辑真”,用整数“”表示“逻辑假”。,逻辑运算及其表达式,关系表达式只能描述单一条件,例如“x=0”。如果需要描述“x=0”、同时“x10”,就要借助于逻辑表达式了。,逻辑运算及其优先次序,逻辑运算符及其运算规则(1)C语言提供三种逻辑运算符:&逻辑与(相当于“同时”)|逻辑或(相当于“或者”)!逻辑非(相当于“否定”)例如,下面的表达式都是逻辑表达式:(x=0)&(x

3、5),!(x=0),,(2)运算规则 1)&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。2)|:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。3)!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。例如,假定x=5,则(x=0)&(x5)的值为“假”。,逻辑表达式,1逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表达式表示多个条件的组合。例如,(year%4=0)&(year%100!=0)|(year%400=0)就是一个判断一个年份是否是

4、闰年的逻辑表达式。逻辑表达式的值也是一个逻辑值(非“真”即“假”)。,2逻辑量的真假判定和非 语言用整数“”表示“逻辑真”、用“”表示“逻辑假”。但在判断一个数据的“真”或“假”时,却以和非为根据:如果为,则判定为“逻辑假”;如果为非,则判定为“逻辑真”。例如,假设num=12,则:!num的值=,num=1 num31的值=1。3说明(1)逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。,(2)在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。换句话说:1)对于逻辑与运算,如果第一个操作数被判

5、定为“假”,系统不再判定或求解第二操作数。2)对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1n2)&(y=n3n4)”后,x的值变为,而y的值不变,仍等于1!,在C语言中,分支结构主要是利用if语句来实现的,if语句是对给定的条件进行判断,然后决定执行某个分支。C语言的if语句有3种形式:if语句if else语句else if语句,If语句,条件执行一般形式为:If(表达式)语句含义:如果表达式的值为真,则执行其后的语句;否则不执行该语句。,语句,表达式,真(非0

6、),假(0),If(x0)printf(“hello!”);,例:输入两个数,输出其中较大的数,main()int a,b,max;printf(“n input two numbers:”);scanf(“%d%d”,if-else语句,分支选择一般形式为:if(表达式)语句A;else语句B;含义:如果表达式的值为真,则执行语句A;否则执行语句B.,表达式,语句A,语句B,真(非0),假(0),注意:在C语言中,表达式e的值为非0时,系统均按“真值“处理。如:if(a)printf(“OK”);x=-5;if(x)printf(“OK”);y=0;if(y=0)printf(“OK”);,

7、例:输入3个整数,输出最大数最小数,main()int a,b,c,max,min;printf(“input three numbers:”);scanf(“%d%d%d”,else-if语句,前面两种形式的if语句一般都用于两个分支情况。在实际程序设计时经常需要进行多分支处理,C语言中进行多分支处理时,可采用else-if语句实现。阶梯式的if语句一般形式 if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;elseif(表达式m)语句m;else语句m+1;含义:依次判断各个表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳出else-if结构

8、。如果所有的表达式的值均为假,则执行语句m+1,然后执行后续程序。,语句1,真,例:根据键盘输入字符的类型并输出相应的信息,#include main()char c;printf(input a character:);c=getchar();if(c=0,if语句的嵌套,当if语句中的执行语句同时也是if语句时,则构成了if语句嵌套的情形。一般形式:if(表达式)if语句;或者为if(表达式)if语句;elseif语句;在嵌套if语句里特别要注意的是if和else的配对问题。,例:比较两个数的大小关系并输出相应的信息,main()int a,b;printf(“please input A

9、,B:”);scanf(“%d%d”,条件运算符,如果if语句中,无论表达式的值是“真”还是“假”,均只执行单个的赋值语句,且给同一个变量赋值时,常使用条件表达式来实现。如:if(ab)max=a;elsemax=b;可以采用条件运算符实现:max=(ab)?a:b;,条件运算符是一个3目运算符,即有3个参与运算的量。由条件运算符组成的表达式称为条件表达式:表达式1?表达式2:表达式3使用条件表达式时,还应注意以下几点:(1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值运算符。(2)条件运算符?和:是一对运算符,不能分开单独使用。(3)条件运算符的结合方向是自右至左。如:ab?

10、a:cd?c:d,例:比较两个数的大小并输出较大值,main()int a,b;printf(“n input two numbers:”);scanf(“%d%d”,switch-case语句,在实际中经常需要处理多分支问题,如统计学生成绩分布等,虽然可以用else-if和嵌套if语句来实现多分支程序设计,但是当分支较多时,程序变得冗长且可读性低。在C语言中提供了直接处理多分支的方法:switch-case语句。,一、格式:switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n+1;,二、执行过程1.计算表达式的值2.若与常量表达式n值一致,则从该语句开始执行;直到遇到break语句或switch语句的3、若与任何常量表达式值均不一致时,则执行default语句或执行后续语句,其中:表达式可以是整型、字符型、枚举型常量表达式必须与表达式类型一致(整型与字符型通用)常量表达式中的数据仅起语句标号作用,不作求值判断常量表达式的值必须是唯一的,没有先后顺序多个case语句可以共用一组执行语句,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号