4.1 关系运算和逻辑运算解析
C语言程序设计第4章
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假
如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }
c语言学习之基础知识点介绍(五):关系运算式和逻辑运算式
c语⾔学习之基础知识点介绍(五):关系运算式和逻辑运算式本节主要说关系运算式和逻辑运算式。
⼀、关系运算式1、等于(==):判断左边的表达式是否等于右边的表达式2、⼤于(>):判断左边的表达式是否⼤于右边的表达式3、⼤于等于(>=):判断左边的表达式是否⼤于等于右边的表达式4、⼩于(<):判断左边的表达式是否⼩于右边的表达式5、⼩于等于(<=):判断左边的表达式是否⼩于等于右边的表达式6、不等于(!=):判断左边的表达式是否不等于右边的表达式//注意:c语⾔中,关系运算所得结果只有0和1,0代表false(假),1代表true(真)。
int num1 = 4;int num2 = 7;int result = 0;//默认为0//等于(==):result = num1 == num2;printf("result = %d \n",result);//输出0//⼤于(>):result = num1 > num2;printf("result = %d \n",result);//输出0//⼤于等于(>=):result = num1 >= num2;printf("result = %d \n",result);//输出0//⼩于(<):result = num1 < num2;printf("result = %d \n",result);//输出1//⼩于等于(<=):result = num1 <= num2;printf("result = %d \n",result);//输出1/不等于(!=):result = num1 != num2;printf("result = %d \n",result);//输出1⼆、逻辑运算符//逻辑运算式的结果也只有0和1,0代表false(假),1代表true(真)//注意:c语⾔中任何⾮0数字都为真。
关系运算与逻辑运算
12
C语言程序设计
C语言程序设计
((a+b)>c) && ((x+y)<b)
逻辑表达式的值:
逻辑表达式的值也为“真”和“假”两种,用“1”和“0 ” 来表示。
8
关系运算与逻辑运算
3、关于逻辑运算的说明 表达式 a && b && c 的求解过程
只有a为真时,才判别b的值;只 有a和b均为真时,才判别c的值。
只要a为假,就不再判别b和c的值, 直接求得表达式的值为假。
又如:
当 a=5, b=4 时
a+=3<b
------------ 6
6
关系运算与逻辑运算
4. 1. 2 逻辑运算符与逻辑表达式
1、逻辑运算符
C语言中提供了三种逻辑运算符
! 非运算 && 与运算 || 或运算
运算符&&和 或运算符|| 均为双目运算符, 具有左结合性。
非运算符!为单目运算符,具有右结合性 (1)逻辑运算符优先级表示如下: ! > && > || 而且: &&, || 低于关系运算符 !高于算术运算符
图4-1 表达式a && b && c的求解过程
9
关系运算与逻辑运算
表达式 a || b || c 的求解过程
只要a为真,就不再判别b和c的值,直接求得表达式的值为真。 只有a为假时,才判别b的值;只有a和b均为假时,才判别c的值
10
关系运算与逻辑运算
例4-2 分析下面程序的运行结果。
关系运算和逻辑运算
【例 1】 “变量 n 的值是偶数”这句话,句话,c 中应表示成:n%2!=0 或!(n%2==0) 【例 2】 “变量 y 的值,被 4 整除且不被 100 整除,或者被 400 整除” 这句 话,c 中应表示成:n%4==0 && n%100!=0 || n%400==0。以上这句话 表示 n 的值是闰年。那么“变量 y 的值不是闰年”这句话,c 中应怎 么表示呢? 【例 3】 “变量 c 的值是小写字母” 这句话, 中应表示成: c c>=’a’ && c<=’z’。 那么, “变量 c 的值是大写字母” 和“变量 c 的值是字母”这两句话, c 中应怎么表示呢?
&& 叫“与”运算符,表示“而且”“同时” 。 、 || 叫“或”运算符,表示“或者” 。 ! 叫“非”运算符,表示“不是” 、 “否” 。
三个运算符的优先次序为:! && || 。 多个关系表达式间用逻辑运算符连接起来形成的表达式叫 逻辑表达式,逻辑表达式的值也是个逻辑值。 如,数学的 |a| >10,c 中应表示成 a>10 || a<-10 ; a>=10 也可表 示成!(a<10) ;a>=10 && b<0 也可表示成 !(a<10 || b>=0)。
c 语言的关系运算符有 6 种: > >= < <= == 等于 != 不等于 )
(大于 大于等于 小于 小于等于
两个数据间用关系运算符连接起来形成的表达式叫关系表达式, 关系表达式的值是个逻辑值,即"真"值或"假"值。 如,3<6 5==10 a<=6 x!=’a’ 都是关系表达式。
4.1 关系运算和逻辑运算
7
思考:
表达式
还是
y=6<10==1
y=6<(10==1) ?
它等同于 y=(6<10)==1
高 算术运算符 : * , / ,% +,关系运算符: < , <= , > , >=, ==, != 赋值运算符: = 低
8
2. 逻辑运算符
逻辑运算符及优先级:
逻辑运算符是对逻辑量进行操作. 共有三种:
18
2、计算机等级考试分笔试和上机考试两部分, 写出判断某考生是否通过考试以及是否有补考 机会的逻辑表达式 假设变量grade1和变量grade2分别表示笔试和机 试成绩,则: grade1>=60&& grade2>=60,该考生通过考试 ; grade1<=60 || grade2<=60,该考生未通过考试 但可以参加补考; grade1<=60&& grade2<=60,该考生未通过考 试且不能参加补考。
30
6.C语言中,要求运算数必须是整型的运算符是( )。 (A)% (B) / (C)< (D)! 7.以下选项中不正确的实型常量是( )。 (A)2.607E-1 (B)0.8103e2. (C)77.77 (D)456e-2 8.合法的C语言赋值语句为( )。 (A)a=b=58 (B)i++ ; (C)a = 50 ,b = 50 (D)k = int(a + b); 9.不合法的C语言赋值语句为( )。 (A)++a; (B)n1 =(n2 =(n3= 0)); (C)a = b= = c; (D)k = a + b=1 ; 10.正确的语句是( )。 (A)int x=y=z=0; (B)int z=(x+y)++; (C)x=+3==2; (D)x%=2.5;
关系运算符和逻辑运算符
关系运算符和逻辑运算符关系运算符和逻辑运算符是编程中常用的运算符,用于进行条件判断和逻辑操作。
本文将详细介绍关系运算符和逻辑运算符的使用方法和注意事项。
一、关系运算符关系运算符用于比较两个值之间的关系,返回布尔值(True或False)作为比较结果。
常见的关系运算符有以下几种:1. 相等运算符(==):用于判断两个值是否相等。
例如,a == b表示a和b的值相等。
2. 不等运算符(!=):用于判断两个值是否不相等。
例如,a != b 表示a和b的值不相等。
3. 大于运算符(>):用于判断左边的值是否大于右边的值。
例如,a > b表示a的值大于b的值。
4. 小于运算符(<):用于判断左边的值是否小于右边的值。
例如,a < b表示a的值小于b的值。
5. 大于等于运算符(>=):用于判断左边的值是否大于等于右边的值。
例如,a >= b表示a的值大于等于b的值。
6. 小于等于运算符(<=):用于判断左边的值是否小于等于右边的值。
例如,a <= b表示a的值小于等于b的值。
关系运算符常用于条件语句和循环语句中,用于判断某个条件是否成立。
例如,if语句中的条件判断就是使用关系运算符来实现的。
二、逻辑运算符逻辑运算符用于对多个条件进行逻辑操作,返回布尔值作为操作结果。
常见的逻辑运算符有以下几种:1. 与运算符(and):用于判断多个条件是否同时成立。
例如,a >b and b > c表示a大于b并且b大于c时条件成立。
2. 或运算符(or):用于判断多个条件是否至少有一个成立。
例如,a >b or b > c表示a大于b或者b大于c时条件成立。
3. 非运算符(not):用于对条件进行取反操作。
例如,not a > b 表示a不大于b时条件成立。
逻辑运算符常用于组合多个条件,形成复杂的判断条件。
例如,在if语句中可以使用逻辑运算符将多个条件组合起来,实现更加灵活的条件判断。
if 语句1
• • • • • • • • • • • • • • • • •
#include"stdio.h" #include"math.h" main() { float high,weight,standard; int sex; printf("please input sex,high,weight:"); scanf("%d,%f,%f",&sex,&high,&weight); if(sex==1) standard=high-105; printf("zhengchang"); else printf("bu zhengchang"); else {if (sex==0) standard=high-110; else printf("error"); } if(fabs(weight-standard)<=2) }
高
a>b!=c (a>b)!=c
a= =b<c a= =(b<c)
a=b>c
a=(b>c)
4.1.2 关系表达式
完整的接起来的式子。
如: a>b, a+b>b+c, (a=3)>(b=5) , ' a ' > ' b ', (a>b)>(b<c) 关系表达式的结果值规定为1或0.
例1.输入任意三个整数num1、num2、num3,求三个数中的 最大值。 #include"stdio.h" main() {int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) max=num1; else max=num2; if (num3>max) max=num3; printf("The three numbers are:%d,%d,%d\n",num1,num2,num3); printf("max=%d\n",max); }
关系运算、逻辑运算、算术运算顺序
关系运算、逻辑运算、算术运算顺序一、关系运算1. 关系运算是指对数据之间的关系进行判断和比较的运算。
常见的关系运算符有等于(=)、不等于(<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。
2. 关系运算的结果通常是一个布尔值,即True(真)或False(假)。
对于数值1和2,1大于2的关系运算结果为False,而1小于2的关系运算结果为True。
二、逻辑运算1. 逻辑运算是指对布尔值进行操作的运算。
常见的逻辑运算包括与(and)、或(or)、非(not)。
2. 与运算是指只有在所有操作数都为True时结果才为True,否则结果为False。
或运算是指只要有一个操作数为True,结果就为True。
非运算是指对操作数取反的运算。
3. 逻辑运算通常用于组合多个关系运算的结果,进行复杂的条件判断和逻辑推理。
判断一个人是否满足芳龄大于18岁并且收入大于xxx元的条件,就可以通过与运算来实现。
三、算术运算顺序1. 算术运算顺序是指在一个算术表达式中,各种运算符的运算顺序。
一般按照以下优先顺序进行计算:括号中的运算、乘除法、加减法。
2. 在表达式2+3*4中,乘法的优先级比加法高,因此先计算3*4的结果(12),再与2相加,最终的结果为14。
3. 如果想要改变运算的优先顺序,可以通过添加括号来实现。
(2+3)*4,先计算括号中的结果(5),再与4相乘,最终的结果为20。
4. 算术运算顺序的理解和掌握对于编程、数学等领域的学习和应用都具有重要意义。
总结:关系运算、逻辑运算和算术运算顺序是计算机编程和数学中的基本概念,了解和掌握这些概念对于进行有效的编程和逻辑推理是非常重要的。
希望通过本文的介绍,读者们能够加深对这些概念的理解,进一步提高自己的计算机和数学素养。
在计算机编程和数学中,关系运算、逻辑运算和算术运算顺序都是非常基础的概念,但是它们在实际应用中却有着重要的作用。
C语言-ch04-1-关系、逻辑和条件表达式教程
(高) (低)
2024/7/15
19
逻辑表达式举例
若a=4,则!a的值为 0
若a=4,b=5,则a && b的值为 1
a和b值分别为4和5,则a||b的值为 1
a和b值分别为4和5,则!a||b的值为 1
4 && 0 || 2的值为 1
5 > 3 && 8 < 4 - !0 0
2024/7/15
20
怎么表示"如果分数80小于等于grade且小于90,则五 分制分数为A"? if (80 <= grade < 90),错 if (grade>=80 && grade<90),对 if ((grade>=80) && (grade<90)),加括号最好
怎么表示"如果字符型变量c为‘Y’或‘y’"? if (c == 'Y' || 'y'),错 if (c == 'Y' || c == 'y'),对
2024/7/15
7
int a, b, c, t;
scanf("%d %d %d", &a, &b, &c);
if (a > b) // a是a、b中的小者 {
独占一行
t = a; a = b; b = t;
} if (a > c) // a是三者中最小者
如果没有这个{},会发 生什么?
{
t = a; a = c; c = t;
12
优先级 P378
1. ( ) [ ] -> . 2. ! ~ ++ -- +(正号) 3. * / % 4. + 5. << >> 6. < <= > >= 7. == != 8. & 9. ^ 10. | 11. && 12. || 13. ? : 14. = += -= *= /= %= 15. ,
关系运算符和逻辑运算符
关系运算符和逻辑运算符关系运算符(双⽬运算符)<(⼩于)<=(⼩于或等于) 优先级相同(⾼)>(⼤于)>=(⼤于或等于)==(等于) 优先级相同(低)!=(不等于)关系运算符得到的值是⼀个逻辑值(只有真或假)C语⾔⽤1表⽰真,⽤0表⽰假⽤关系运算符将两边的变量,数据或表达式连接起来,称之为关系表达式1<2 得到的就是1'a'+'b'<='c'(要⽤到⼗进制的ASCII码,'a'=97,'b'=98,'c'=99)(a=3)>(b=5) 得到的值为0#includeint main(){int a=5,b=3;printf("%d\n",1<2);printf("%d\n",a>b);printf("%d\n",a<=b+1);printf("%d\n",'a'+'b'<='c');printf("%d\n",(a=3)>(b=5));return 0;}结果11逻辑运算符运算符含义优先级举例说明!逻辑⾮⾼!a如果a为真,!a为假;如果a为假,!a为真。
&&逻辑与中a&&b只有a和b同时为真,结果才为真;只要a和b其中⼀个为假,结果为假。
||逻辑或低a||b只要a或b其中⼀个为真,结果为真;只有a和b同时为假,结果才为假。
3>1 && 1<2 (11)返回13+1 || 2==0 (3加1为4,⾮零,真的,后⾯假的)所以返回1#include <stdio.h>int main(){int a=5,b=3;printf("%d\n",3>1&&1<2);printf("%d\n",3+1||2==0);printf("%d\n",!(a+b));printf("%d\n",!0+1<1||!(3+4));printf("%d\n",'a'-'b'&&'c');return 0;}结果111备注:结果不是0,就是真的短路求值短路求值⼜称最⼩化求值,是⼀种逻辑运算符的求值策略。
C语言讲义C4
{ char ch; scanf(“%c”, &ch); ch= (ch>= ‘A’&& ch<= ’Z’)? (ch+32) : ch; printf(“%c”, ch) }
输入 A a
21
4.4 switch 语句
switch语句 问题:为什么引出switch语句? 该语句为开关语句,解决多分支的情况。 格式:switch(表达式) { case (常量表达式1):语句块1; case (常量表达式2):语句块2;
3
4.1.2 逻辑运算符及其运算结果
用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。
1. 逻辑运算符及其优先次序 C语言提供三种逻辑运算符: && (逻辑与) 、 || (逻辑或) 、! (逻辑非) 注:“&&”和“|| ”是“双目(元)运算符”,它要求有两个运算量 操作数。而“! ”是“单目(元)运算符”,只要求有一个运算 量。 [例]:a&&b+c 、 (a>b)||(x>y) 、!(x<y)
0 0.0 2 0.0 5 d 0.0 8 0.1 0.1 5 s 250 250 s 500 500 s 1000 1 0 0 0 s 2 0 0 0 2 0 0 0 s 3 0 0 0 3 0 0 0 s
(4) case后的“常量表达式”只起到语句标号 的作用,而不进行条件判断,故在执行完某个 case后的语句序列后,将自动转移到下一个case 继续执行。其计算过程为:
23
a. 计算表达式的值; b. 找到与表达式的值相同的case常量表达式,执行该case后边 的语句序列,之后依次往下执行语句块。 表达式
第四章选择结构程序设计(最终版)-2013(1)分析
试写程序
给n1、n2、n3 输入数值
Y n1>n2 N scanf("%d,%d,%d",&n1,&n2,&n3); if (n1>n2) else
max=n1; max=n2;
max=n1
max=n2
n3>max Y max=n3
N
if (n3>max) max=n3;
输出max
printf("max=%d\n",max);
返回 计算机科学学院
4.2 逻辑运算及其表达式
用逻辑运算符将关系表达式或逻辑 量连接起来的式子就是逻辑表达式。
计算机科学学院
4.2.1 逻辑运算及其优先次序
1.逻辑运算符及其运算规则 (1)C语言提供三种逻辑运算符: && || !
例如,下面的表达式都是逻辑表达式:
(x>=0) && (x<10) (x<1) || (x>5) ! (x= =0)
计算机科学学院
例如,假设num1=3,num2=4,num3=5,则 (1)num1>num2的值 0 1 1
(2)(num1>num2)!=num3的值 (3)num1<num2<num3的值
( 4)(num1<num2)+num3 6 思考题:任意改变 num1或num2的值,会影响整个表达式 的值吗?为什么?
n1<n2 演示程序 输出n1、n2、n3 返回 计算机科学学院
4.3.1 if语句
给n1、n2、n3 输入数值 n
4.3.2 if语句的嵌套
if语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指, 在“语句1”或(和)“语句2”中,又包含有if 语句的情况。 if语句嵌套时,else子句与if的匹配原则: 与在它上面、距它最近、且尚未匹配的if配对。
关系运算和逻辑运算
(year%4==0 && year%100 != 0) || (year%400==0)
逻辑表达式的短路规则
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行
① a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都 为真时,才需要判断c的值
关系运算符及其优先次序
高 算术 运算符
优
先
关系
运算符
级
赋值 低 运算符
1 < (小于) 2 <= (小于等于) 3 > (大于) 4 >= (大于等于) 5 == (等于) 6 != (不等于)
关系表达式
用关系运算符将两个数值或数值表达式连接起来的式子,称 为关系表达式
整型、实型、字符型数据以及字符串都能进行关系运算
逻辑运算符和逻辑表达式
当要同时判断多个条件时,需使用逻辑运算 用逻辑运算符将关系表达式或其他逻辑量连接起来的式子
就是逻辑表达式
逻辑运算符及其优先次序
运算符 含义 举例
说明
!
逻辑非
!a 如果a为假,则!a为真;如果a为真,则!a为假
a &&
&& 逻辑与
如果a和b都为真,则结果为真,否则为假
b
||
关系表达式的值是一个逻辑值,即“真”(1) 或“假”(0)
关系表达式
例1 • 若a=3,b=2,c=1,则:
1 d=a>b;
由于a>b为真,因此关系表达式a>b的值为1,所以赋值后d的值为1
07_关系运算与逻辑运算
4.1.2 关系运算符和关系表达式 关系运算实际上就是“比较运算”,将两个数进行比较,判 断比较的结果是否符合指定的条件。 1.关系运算符 关于关系运算符的说明: (1)表4-1中前4种运算符(<、<=、>、>=)的优先级别相 同,后两种也相同。前4种优先级别高于后两种。如,“>” 优先级别高于“!=”。 (2)关系运算符与算术运算符、赋值运算符的优先级关系 如下: 算术运算符(高)→关系运算符(中)→赋值运算符(低) 即:算术运算符优先级别高于关系运算符,关系运算符优先 级别又高于赋值运算符。 (3)关系运算符的结合方向是“自左向右”。
本次课要点:
4.1 关系运算和逻辑运算
4.1 关系运算和逻辑运算
4.1.1 C语言中的逻辑值 C语言中,参与逻辑运算的量为非零值或整数 零,非零值和整数零分别表示运算量为“真”或 “假”。逻辑运算的结果值,即逻辑表达式的值 应该是一个逻辑值“真”或“假”。C语言编译 系统在给出逻辑运算结果时,以数值1代表“真”, 以0代表“假”,但在判断一个量是否为“真”时, 以0代表“假”,以非0代表“真”。
关系运算示例:试求x=5>3>1的值。 分析:x=5>3>1相当于: x=(5&g关系表达式主要用于选择结构中的条件判断。 ※重点提示:表示“等于”关系的运算符“= =” 和“不等于”关系的运算符“!=”与数学中的表示 方法不同。在使用它们时请予以注意,以免写错 关系运算符而导致错误的结果。例如,欲判断x是 否等于0,如果写成:x=0就不是判断x是否等于0 的含义了,而成了把0赋值给变量x。正确的写法 应为:x= =0。
C语言有六种关系运算符,如表4-1所示。 表4.1 C语言中的关系运算符
运算符 < <= > >= ==(连续两个=) != 名称 小于 小于或等于 大于 大于或等于 等于 不等于 优先次序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
思考:
表达式
还是
y=6<10==1
y=6<(10==1) ?
它等同于 y=(6<10)==1
高 算术运算符 : * , / ,% +,关系运算符: < , <= , > , >=, ==, != 赋值运算符: = 低
8
2. 逻辑运算符
逻辑运算符及优先级:
逻辑运算符是对逻辑量进行操作. 共有三种:
可是整数,也可以是任何类型的数据。系统最终是以 :
0判断为假,非 0 判断为真.
14
在逻辑表达式求值的过程中,并不 是所有的逻辑运算符都必须被执行,只 是在必须执行下一个逻辑运算符时才能 求出表达式的解时,才执行该运算符。
例:求表达式的值: 5>3 && 2||8<4-!0 ① 4-!0 即: 3 得:5>3 && 2||8<3得:1 && 2 || 0 ② 5>3 结果为 1;8<3 结果为0 ③ 1&&2 结果为 1 最后结果为 1
18
2、计算机等级考试分笔试和上机考试两部分, 写出判断某考生是否通过考试以及是否有补考 机会的逻辑表达式 假设变量grade1和变量grade2分别表示笔试和机 试成绩,则: grade1>=60&& grade2>=60,该考生通过考试 ; grade1<=60 || grade2<=60,该考生未通过考试 但可以参加补考; grade1<=60&& grade2<=60,该考生未通过考 试且不能参加补考。
2.逻辑表达式 :用逻辑运算符将关系表达式,或逻辑量
连起来的式子,叫逻辑表达式。逻辑表达式的值应该是一
个逻辑量:真(1),假(0).
12
说明 :
C语言在编译时,给出逻辑运算结果时 (如关系表达式 、逻辑表达式),如果是真,用1表示;是假用0表示。 但在判断一个量是否为真或为假时, 即以非0为真(包 括负值), 以0值为假.
%=, *=
运算符的优先级请见附录
5
2.关系表达式:
关 系 运 算 符 将 两 个 表 达 式 连 起 来 的 式 子 —— 关 系 表 达式。关系表达式由于是一种比较的操作,其结果是成 立,不成立的关系。也即产生一个逻辑值 , “真” 或 “假”。
C语言中没有设逻辑型数据 . C中用1代表逻辑真 ,0 代表逻辑假。
(ch >= 'a') && (ch <= 'z') 2. 判断ch 是否为英文字母: (ch >= 'a' && ch <= 'z') || ( ch >= 'A' && ch <= 'Z')
17
例:闰年的条件:a.能被4整除,但不能被100整除 或:b.能被400整除 设 year为某一年份, year为闰年的表达式: ((year%4 ==0&&year%100!=0)||year%400==0) 当上述逻辑表达式为 1 时,year这一年为闰年,当为 0 时, year这一年为非闰年。
0 ~ 1
6
如:设:
a=4 ,
b=3 ,
c=2 ;
则:(1). 如果a > b的值为 “真”,则表达式的值为1 . (2). d= b > c /* d的值为 1 .*/ /* e 的值为 0.*/ /* 因 “>” 运算符自左到右结合,先执 行 a>b,值为 1,再执行1>c,值为 0*/ (4). f= (a>b)+a f的值为5 (3). e = a>b>c
1.关系运算符及优先级:
< (小于) <= (小于等于) > (大于) >= (大于等于)
= = (等于) ! = (不等于)
优先级相 同 (高 ) 高
优先级相 同 (低 )
低
3
第1节 关系运算和逻辑运算
运算符 > >= < 含义 大于 大于等于 小于 结合方向 自左至右 自左至右 自左至右 举例 a>b,10>8 a>=b,3>=2 a<b,3<10 操作数个数 双目运算符 双目运算符 双目运算符
&& , | | 是双目(二元)运算符,! 是单目(一元)运算符.
10
优先级:
逻辑运算符: ! 高
算术运算符: + , *
关系运算符: > , =< 逻辑运算符: && , | |
赋值运算符: =
低
11
例:(a>b)&& (x>y)
(!a) | | a>b
a>b && x>y
! a | | a>b
这种表示方法法最先在C中使用,因为它使得编程显示 特别方便。
13
例:设 a=4,b=5,则: !a 的值为 0
a&&b 的值为 1 .
(因为a的值为非 0,认为是真)
a||b
的值为 1 .
的值为 1 (自左向右运算).
4 && 0 || 2
•可见: (1).逻辑运算结果不是 0,就是 1.
(2).参加逻辑运算的操作数可以是1,0(真, 假),也
<=
== !=
小于等于
等于 不等于
自左至右
自左至右 自左至右
a<=b,3<=b
a==b,3==5*a a!=b,3!=5%7
双目运算符双ຫໍສະໝຸດ 运算符 双目运算符算术运算符 : * ,
高 关系运算符: 赋值运算符: = 低
/ , % ,+ , -
< , <= , > , >=, ==, !=
复合赋值运算符: +=,
注: 逻辑表达式求解自左向右,且一旦知道结果的真假 值,求值即停止。
例. 若设: a=1,b=1,c=3,d=4, m,n原值为1,那么: (m=a>b) && (n=c>d) 则m新值为0,n不再赋值。
16
熟练掌握关系运算符和逻辑运算符,可以巧妙地用一 个逻辑表达式来表示一个复杂的条件。
1. 判断ch 是否为小写英文字母:
高
!
…… 逻辑非(NOT)
(对操作数取反,如操作数为真,结果就为假.)
&& …… 逻辑与(AND)
低
||
(只有两个操作数的值同时为真时,结果为真.)
…… 逻辑或 (OR)
(只要两个操作数中的一个值为真时,结果就为真.)
9
逻辑运算符的功能
逻辑与: &&, 逻辑或:||, 逻辑非: ! 真值表: a b a&&b a||b !a 假 假 假 假 真 假 真 假 真 真 真 假 假 真 假 真 真 真 真 假
第 4章
选择结构程序设计
1
内容简介
选择结构又叫分支结构,用于在几 个可选择的分支之间进行选择。选择结 构是结构化程序设计的基本结构之一, 在C程序中,可以使用if和switch两种语 句进行逻辑判断,从而实现选择结构。
一、关系运算符与关系表达式 : 关系运算符也就是一种比较大小的运算符。
第1节 关系运算和逻辑运算