3、
4、逻辑或!逻辑非双目运算符单目运算符a&&b若a,b都为真,则a&&b为真,否则为假a
5、
6、b若a,b之一为真,则a
7、
8、b为真,只有当ab均为假时,a
9、
10、b才为假!a若a为真,则!a为假;若a为假,则!a为真注意:这里的a,b代表的可以是数据,也可以是表达式&&真假真真假假假假
11、
12、真
13、假真真真假真假真假!假真!算术运算符关系运算符&&和
14、
15、赋值运算符低高例:a>b&&x>y(a>b)&&(x>y)a==b
16、
17、x==y(a==b)
18、
19、(x==y)!a
20、
21、a>b(!a)
22、
23、(a>b)2、逻辑表达式用逻辑运算符将两个表达式连接起来的式子,称为逻辑表达式。注意:逻辑表达式的值是一个逻辑值,即“真”或“假”以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”例:1>若a=4,则!a的值为02>若a=4,b=5,则a&&b的值为1,因为a和b均为非0,则被认为是“真”,因此a&&b的值也为“真”,值为13>4&&0
24、
25、
26、2的值为14>‘a’&&‘b’的值为1,因为‘a’和‘b’的ASCII值都不为0*通过以上几个例子可以看出,逻辑运算结果不是0就是1,不可能有其他数值。然而在逻辑表达式中作为参加逻辑运算的运算对象可以是0或任何非0数值。0表示“假”,任何非0数值都按照“真”对待另外需要注意的是在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符例如:1>a&&b&&c只有a为真(非0)时,才需要判断b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和C,因为此时整个表达式已确定为假。若a为真,
27、b为假,不判别cabc0非0非0非0000(假)1(真)2>a
28、
29、b
30、
31、c只要a为真(非0)时,就不用判断b和c,只有a为假,才判断b,a和b都为假时才判断cabc0非0非0非0000(假)1(真)也就是说,对&&运算符来说,只有a!=0,才继续进行其右边的运算。对
32、
33、运算符只有a==0才继续右边的运算例:设a=1,b=2,c=3,d=4,m=1,n=1判断逻辑表达式(m=a>b)&&(n=c>d)的逻辑值和完成此运算后m和n的值此逻辑表达式的值为0“假”运行完后,m==0而n=c>d不被执行,因此n的值仍保持原值15.2if语句1、单分支选择if语句if语句有三种形式
34、:单分支选择if语句、双分支面具选择if语句、多分支选择if语句。语句形式:if(表达式)语句;语句执行流程:表达式语句真(非0)假(0)5.2.1if语句的三种形式例:从键盘输入两个整数a和b,如果a大于b则交换两数,最后输出两个数。#includea>b交换a、b真假main(){inta,b,t;scanf("%d,%d",&a,&b);if(a>b){t=a;a=b;b=t;}printf("a=%d,b=%d",a,b);}输入a,b输出a,b结束注意:(1)if语句自动结合一个语句,当满足条件需要执行多个语句时,应用一对大括号{}将需要
35、执行的多个语句括起,形成一个复合语句。(2)if语句中表达式形式很灵活,可以是常量、变量、任何类型表达式、函数、指针等。只要表达式的值为非零值,条件就为真,反之条件为假。2、双分支选择if语句语句形式:if(表达式)语句1;else语句2;语句执行流程:表达式语句1真(非0)假(0)语句2例输入两个整数,输出其中较大的数。#includemain(){intx,y,max;scanf("%d,%d",&x,&y);if(x>y)max=x;elsemax=y;printf("max=%d",max);}输入x,yx>