Java_Day3:学习笔记和收获
运算符
1.1 算数运算符
加+ 减- 乘* 除/ 余% 赋值= 小括号()
「注意事项」:
1.先乘除后加减
2.从左至右运行
3.除数不能为0
4.先运算小括号内的内容
【批注】
1.Java中所有运算等有有18-19个等级,优先级最高的是小括号,开发中如果出现了需要整理优先级的问题,简单粗暴加括号
2.小括号里面的内容对于小括号外面的内容而言是一个整体,是一个【常量】
= 赋值号
赋值号的功能是将赋值号右侧的数据,赋值给左侧的【常量】
char ch = 'A' true
10 = 20 false
1.2 偷懒专用算数运算符
+= -= /= *= %=
num1 = num1 + num2;==> num1 += num2;(两者相等,其他同理)
1.3 关系运算符
>= <= != == > <
「注意事项」:
1.关系运算符结果是一个 boolean 数据类型,true or false
2.关系运算符一般用于条件判断、数据过滤...
1.4 自增自减运算符【重点、考点】
「明确」
自增自减运算符有且只能操作变量,不可操作常量
「建议」
1.开发中尽量减少或标准化使用自增自减赋值符
2.尽量使用 -= 或者 += 替换自增自减运算符,阅读性更好,并且在swift语言中已经取消了自增自减运算符,使用+=和-=代替,为了避免没有必要的歧义性
3.使用自增自减运算符时,单独成行
「语法」
++ 自增运算符 操作的变量自增1 等价于 += 1
-- 自减运算符 操作的变量自减1 等驾驭 -= 1
「难点」
num++ 先取值,在自增 ++num 先自增,再取值
【自增自减运算符考点】
例1
int num = 5;
int ret = num++ * ++num;
ret = ?
num = ?
// num 经过两次自增,最终结果为7
例2
int num =5;
++(num++);
num = ?
/*报错,因为(num++)是一个常量,自增自减只能操作变量,同理 ++num++ 也是错的,因为++num也是常量
(num)还是变量,因为括号里没有运算,()是无效的,计算机会忽略括号
*/
1.5 逻辑运算符
与 && 缺一不可,同时满足 同真为真,有假【即】假
或 || 满足一个即可 有真【即】真,同假为假
非 ! 取反
优先级 && > ||
逻辑运算符的结果都为 boolean 数据类型
通常用于条件判断,数据过滤...
【逻辑运算符短路原则】
逻辑与的情况下:
当出现一个条件为false之后,整个逻辑与表达式的结果为false,从false后面的其他所有条件都不会执行
逻辑或的情况下:
当出现一个条件为true之后,整个逻辑或表达式的结果为true,从true后面的其他所有所有条件都不会执行
逻辑与
class Demo1 {
public static void main(String[] args) {
int num = 5;
boolean ret = false;
/*
只要有错后面的就不看了吗 为了效率是吗
逻辑与的情况下:
同真为真,有假【即】假
当出现一个条件为false之后,整个逻辑与表达式的结果为
false,从false之后的其他所有条件都不会执行。
计算机的节约性能问题!!!
*/
ret = num > 10 && ++num > 1;
System.out.println("ret : " + ret);
System.out.println("num : " + num);
}
}
逻辑非
class Demo2 {
public static void main(String[] args) {
int num = 10;
boolean ret = false;
/*
逻辑或短路原则
有【真】即真,同假为假
只要发现一个条件为真,整个表达式结果已经确定为真。
从true条件开始其他条件不需要执行
*/
ret = num > 5 || ++num > 20;
System.out.println("ret : " + ret); // true
System.out.println("num : " + num); // 10
}
}
1.6 收获
首先对算术运算符、关系运算符、自增自减运算符、逻辑运算符有一个清晰的认知了,弄清楚了自增自减的几种容易歧义的表示方式(num++、++num)理清了几种逻辑运算符的真假判断规则以及逻辑“与”和“或”短路原则。
今天收获还挺不错的,学习之前自增自减以及逻辑运算这两个部分还是挺容易犯错的,但是后面经过学习以及思考,已经可以清晰得进行判断了。