资源描述:
《嵌入式linux下c程序设计--03分支结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux下C程序设计主讲:成宝宗关系运算及其表达式所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。例如,“a>b”中的“>”表示一个大于关系运算。如果a的值是5,b的值是3,则大于关系运算“>”的结果为“真”,即条件成立;如果a的值是2,b的值是3,则大于关系运算“>”的结果为“假”,即条件不成立。关系运算符1.关系运算符C语言提供6种关系运算符:<(小于),<=(小于或等于),>(大于),>=(大于或等于),==(等于),!=(不等于)注意:在C语言中,“等于”关系运算符是双等号“==”,而不是单等号“=”(赋值运算符)。
2、关系表达式1.关系表达式的概念所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b',(a>b)==(b>c)2.关系表达式的值——逻辑值(非“真”即“假”)。由于C语言没有逻辑型数据,所以用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。逻辑运算及其表达式关系表达式只能描述单一条件,例如“x>=0”。如果需要描述“x>=0”、同时“x<10”,就要借助于逻辑表达式了。逻辑运算及其优先次序1.逻辑运算符及其运算规则(1)C语言提供三种逻辑运算符:&&逻辑
3、与(相当于“同时”)
4、
5、逻辑或(相当于“或者”)!逻辑非(相当于“否定”)例如,下面的表达式都是逻辑表达式:(x>=0)&&(x<10),(x<1)
6、
7、(x>5),!(x==0),(2)运算规则1)&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。2)
8、
9、:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。3)!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。例如,假定x=5,则(x>=0)&&(x<10)的值为“真”,(x<-1)
10、
11、(x>5)的值为“假”。逻辑表达式1.逻辑表达式的概念所谓逻辑表
12、达式是指,用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表达式表示多个条件的组合。例如,(year%4==0)&&(year%100!=0)
13、
14、(year%400==0)就是一个判断一个年份是否是闰年的逻辑表达式。逻辑表达式的值也是一个逻辑值(非“真”即“假”)。2.逻辑量的真假判定──0和非0C语言用整数“1”表示“逻辑真”、用“0”表示“逻辑假”。但在判断一个数据的“真”或“假”时,却以0和非0为根据:如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。例如,假设num=12,则:!num的值=0,num>=1&&num<=31的值
15、=1,num
16、
17、num>31的值=1。3.说明(1)逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。(2)在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。换句话说:1)对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。2)对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而
18、y的值不变,仍等于1!在C语言中,分支结构主要是利用if语句来实现的,if语句是对给定的条件进行判断,然后决定执行某个分支。C语言的if语句有3种形式:if语句ifelse语句elseif语句If语句条件执行一般形式为:If(表达式)语句含义:如果表达式的值为真,则执行其后的语句;否则不执行该语句。语句表达式真(非0)假(0)If(x>0)printf(“hello!”);例:输入两个数,输出其中较大的数main(){inta,b,max;printf(“inputtwonumbers:”);scanf(“%d%d”,&a,&b);max=a;if(max
19、printf(“max=%d”,max);}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”);例:输入3个整数,输出最大数最小数main(){inta,b,c,max,min;