初学笔记(十七)
重点:掌握++和--
不管++出现在变量前还是变量后,都会让变量自加1
那么,++出现在变量前和变量后有什么区别?
当++出现在变量后,会先做赋值计算,再自加1。
当++出现在变量前,会先进行自加1的计算,再做赋值计算。
关于输出语句里的++c与c++
注意:
1、所有关系运算符的运算结果都是布尔类型
2、在Java语言中,=是赋值运算符,==是关系运算符,判断是否相等。
3、关系运算符如果有两个符号的话,中间不能有空格。
>= 这是对的, > = 这是不对的。
== 这是对的,= = 这是不对的。
用普通话描述的话:100 大于 99 并且 100 大于 98
用代码描述的话:100 > 99 & 100 > 98
逻辑运算符的特点:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。
对于逻辑或,只要有一边是true,结果就是true。
当输出语句涉及一个关系运算符时,取非要加一个小括号。
短路与(&&)和逻辑与(&)实际上最终 的运行结果是完全相同的,只不过短路与 (&&)会存在短路现象。
短路现象:
从效率上说,短路与比逻辑与效率稍高一些。因为逻辑与不管第一个表达式结果是什么,第二个都会执行。
在实际开发中,短路与&&和逻辑与还是需要同时并存的。
大部分情况下都建议使用短路与&&,但当既需要左边表达式执行,又需要右边表达式执行的时候,就要选择逻辑与&。
或的时候只要有一边是true,结果就是true,所以 当左边表达式结果是true的时候,右边的表达式不需要执行,此时会短路。
赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”
注意:拓展赋值运算符在编写时,两个符号之间不能有空格(和关系运算符类似)
赋值运算符“=”的右边优先级比较高,先执行右边的表达式,然后将表达式的执行结果放到左边的“盒子”当中(赋值)。
以“+=”为代表学习扩展赋值运算符,其它的运算符,如:-=、*= 原理相似
i += 10 和 i = i + 10 真的是完全一样吗?
不一样。他们只是相似,但本质并不不同。
注:使用扩展赋值运算符时,永远不会改变运算结果类型!
但有可能损失精度 。(初学笔记(十六))
其他的扩展赋值运算符:
+ 运算符:
1、+ 运算符在java语言中有两个作用
作用1:求和
作用2:字符串拼接
2、什么时候求和?什么时候拼接?
当 + 运算符两边都是数字类型的时候,求和;
当 + 运算符两边任意一边是字符串类型,那么这个 + 会进行字符串的拼接操作。
3、当字符串拼接完成之后,它的结果还是一个字符串。
拼接:
求和: 加法运算
注意:当一个表达式当中有多个加号的时候, 遵循“自左向右”的顺序依次执行。(除非额外添加了小括号,小括号的优先级高)
如果添加了小括号: