五、【掌握】自增和自减
提问:
你今年几岁了?
int age =18;
age = age + 1; 或者age += 1
但是,更精简的方式诞生了!!
a++
++a
可是现在,新问题来了:
a++和++a
有区别吗?
我们看两个例子:
从上面两个例子,我们似乎看出了点什么不同。
即:
前缀++代表让变量先+1,再作为表达式的值
后缀++代表让变量原来的值作为表达式的值,再+1
根据这些,我们很明显地可以的得出下述表达式的值
使用注意:只能用于标准类型的单个变量,不能用于表达式或常量
六、【了解】逗号运算符和表达式
简介:“,”就叫逗号运算符,把多个表达式用“,”连接起来组成一个表达式,叫逗号表达式。
逗号表达式必须用一个括号括起来
int a = 10;
int b = 20;
a++;
b++;
int c = a + b;
等同于
int a = 10;
int b = 20;
int c = (a++,b++,a+b);
七、【掌握】关系运算符
每个人颜值有高有低,那么在代码里怎么判断谁的颜值高,谁的颜值低呢?
回顾:
第一节课所做的小学数学题!
如果我们说 张三 比李四 帅 也就是说张三的颜值 大于 李四
那么,如果以后我们要询问 张三 比李四帅吗?
是否就可得到一个条件表达式 结果 = 张三的颜值 > 李四的颜值
也就是说:
条件表达式是用来描述的1个条件的.
条件表达式的结果:条件表达式只有两种结果,一种是条件成立返回的是1(也叫条件为真),一种是条件不成立返回的是2(也叫条件为假),不可能出现第三种。
注意:这里的条件判断与数学中的意义也不一样,这边只当做一个判断条件,而数学是定论
例如:在C语言里,我们是可以写 3 > 5这样的表达式的,代表判断3是不是大于5,但是在数学中,如果你写3>5,那么你体育老师又要躺枪了!
关系运算符的结合性:
关系运算符都是双目运算符,结合性为左结合性
关系运算符的优先级:关系运算符的优先级低于算术运算符,高于赋值运算符
例如:
int a = 10; int result = a/2> 6;
说明:先计算a除以2,再运算a/5的结果是否大于6,再把这个比较的结果赋值给result
课堂练习:
请用户输入小明的语文成绩和数学成绩.
输出判断的结果.
1). 小明的语文成绩是否大于数学成绩.
2). 平均成绩是否大于85.
八、【掌握】逻辑运算符
1、概念
C语言中提供了三种逻辑运算符:
&&(与运算) || (或运算) ! (非运算)
2、结合性
与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。 非运算符(!)为单目运算符,具有右结合性。
3、优先级
逻辑运算符和其它运算符优先级的关系可表示如下:
4、逻辑运算的值
逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:
- 与运算(&&)
参与运算的两个量都为真时,结果才为真,否则为假。
例如: 5>0 && 4>2
由于5>0为真,4>2也为真,相与的结果也为真。
口诀:一假则假
- 或运算(||)
参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:
5>0||5>8
由于5>0为真,相或的结果也就为真。
口诀:一真为真
- 非运算(!)
参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:
!(5>0) 的结果为假。
口诀:真变假,假变真
注意:
1)虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反过来在判断一个量是为“真”还是为“假”时,
以“0”代表“假”,以非“0”的数值作为“真”。 例如:
由于5和3均为非“0”因此5&&3的值为“真”,即为1。
又如:
5||0的值为“真”,即为1。
2)短路
与短路:&&
只要第一个条件表达为假那么后面的条件表达就不参与运算了 或短路:|| 只要第一个条件表达式为真那么后面的条件表达式就不参与运算了
5、逻辑表达式
逻辑表达式的一般形式为:
表达式 逻辑运算符 表达式
其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。
例如: (a&&b)&&c
根据逻辑运算符的左结合性,上式也可写为: a&&b&&c
逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。
6、真值表
假设有两个表达式,分别为表达式1和表达式2
练习:
用户从键盘上输入三个整数,找出最大值,然后输入最大值