运算符
1. 运算符
1.1 算术运算符
小学知识点:
加+,减-,乘×,除÷,小括号()
开发中使用的算术运算符:
加 + 减 - 乘 * 除 / 取余 % 小括号 () = 赋值号
注意事项:
1. 先乘除,后加减
2. 从左至右运行
3. 除数不能为0
4. 先运算小括号里面的内容
【批注】
1. Java中所有的运算符优先级有18-19个等级,优先级最高的是小括号,开发中
如果出现了需要整理优先级的问题,简单粗暴加括号
2. 小括号里面的内容对于小括号外部而言是一个整体,是一个【常量】
= 赋值号
赋值号的功能是将赋值号右侧的数据,赋值给左侧的【变量】
char ch = 'A'; True
10 = 20; false
使用总结:
1. 变量有且只能是被赋值之后才可以修改内容,未赋值不能修改
2. 取余操作注意细节
3. 【批注】
取余操作针对整数,小数没有取余操作
class Demo1 {
public static void main ( String[ ] args) {
int num1 = 10 ;
int num2 = 20 ;
num1 = num1 + num2;
num1 = num1 * num2;
num1 = num1 - num2;
num1 = num1 / num2;
num1 = num2 % num1;
System. out. println ( num1) ;
System. out. println ( num2) ;
}
}
1.2 偷懒专用算术运算符
非常实用!!!
+= -= /= *= %=
num1 = num1 + num2; ==> num1 += num2;
class Demo2 {
public static void main ( String[ ] args) {
int num1 = 10 ;
int num2 = 20 ;
num1 += num2;
num1 *= num2;
System. out. println ( num1) ;
System. out. println ( num2) ;
}
}
1.3 关系运算符
小学关系运算符:
> < ≥ ≤ ≠ =
代码开发中关系运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
== 等于判断
注意事项:
1. 关系运算符结果是一个boolean数据类型,true or false
2. 关系运算符一般用于条件判断,数据过滤...
class Demo3 {
public static void main ( String[ ] args) {
boolean ret = true ;
ret = 5 > 10 ;
System. out. println ( ret) ;
ret = 5 < 10 ;
System. out. println ( ret) ;
ret = 5 >= 5 ;
System. out. println ( ret) ;
ret = 5 <= 2 ;
System. out. println ( ret) ;
ret = 5 != 5 ;
System. out. println ( ret) ;
ret = 5 == 4 ;
System. out. println ( ret) ;
}
}
1.4 自增自减运算符【难点,考点】
【明确】
自增自减运算符【有且只能操作变量】,不可以操作常量
【建议】
开发中尽量减少或者标准化使用自增自减运算符。
语法
++ 自增运算符 操作的变量自增1 等价于 += 1
-- 自减运算符 操作的变量自减1 等价于 -= 1
【难点】
前后关系
自增自减运算符在
变量之前:首先执行自增自减操作,再来完成当前行代码的运行
变量之后:首先执行当前行代码,再来执行自增自减操作
【16岁老程序员给你的建议】
1. 尽量使用 += 1 或者 -= 1替换自增自减运算符。阅读性更好,并且在Swift语言中
已经取消自增自减运算符,使用 += 1 和 -= 1代替,为了避免没有必要的歧义性
2. 如果非要使用自增自减运算符,推荐自增自减运算符,单独成行。
int num = 10;
++num; or num++; 没有任何的歧义性
class Demo4 {
public static void main ( String[ ] args) {
int num1 = 10 ;
System. out. println ( "num1++ : " + num1++ ) ;
System. out. println ( "num1 : " + num1) ;
System. out. println ( "++num1 : " + ++ num1) ;
System. out. println ( "num1 : " + num1) ;
}
}
class Demo5 {
public static void main ( String[ ] args) {
int num = 10 ;
System. out. println ( "num-- : " + num-- ) ;
System. out. println ( "num : " + num) ;
System. out. println ( "--num : " + -- num) ;
System. out. println ( "num : " + num) ;
}
}
【自增自减运算符考点】
常见面试题1
int num = 5 ;
int ret = num++ * ++ num;
ret = ?
num = ?
常见面试题2
int num = 5 ;
++ ( num++ ) ;
num = ? ;
1.5 逻辑运算符
与
银行的金库,两个人两把钥匙,需要同时在场,缺一不可。
&&
【重点】同真为真,有假【即】假
或
自己家门,我和我女朋友出去逛街,只要有一个人带有钥匙就可以回家,满足一个条件即可。
||
【重点】有真【即】真,同假为假
非
取反
!
逻辑运算符运算的结果都是boolean类型数据。
通常用于条件判断,数据过滤...
class Demo8 {
public static void main ( String[ ] args) {
boolean ret = false ;
ret = 5 > 3 && 10 > 8 ;
System. out. println ( "ret : " + ret) ;
ret = 5 < 3 && 10 > 8 ;
System. out. println ( "ret : " + ret) ;
ret = 5 < 3 || 10 > 8 ;
System. out. println ( "ret : " + ret) ;
ret = 5 < 3 || 10 < 8 ;
System. out. println ( "ret : " + ret) ;
ret = ! ( 5 > 3 ) ;
System. out. println ( "ret : " + ret) ;
}
}
【逻辑运算符短路原则】
class Demo9 {
public static void main ( String[ ] args) {
int num = 5 ;
boolean ret = false ;
ret = num > 10 && ++ num > 1 ;
System. out. println ( "ret : " + ret) ;
System. out. println ( "num : " + num) ;
}
}
class Demo10 {
public static void main ( String[ ] args) {
int num = 10 ;
boolean ret = false ;
ret = num > 5 || ++ num > 20 ;
System. out. println ( "ret : " + ret) ;
System. out. println ( "num : " + num) ;
}
}
1.6 运算符练习题
char ch;
ch >= 'A' && ch <= 'Z' ;
char ch;
ch >= 'a' && ch <= 'z' ;
char ch;
( ch >= 'A' && ch <= 'Z' ) || ( ch >= 'a' && ch <= 'z' ) ;
ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z' ;
int year;
year % 4 == 0 ;
year % 100 != 0 ;
year % 400 == 0 ;
( year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0 ;
2. 作业
小练习
1. 写出判断【数字字符】的条件
2. 写出判断数值0 ~ 9的条件
3. 代码阅读
int num = 5;
int ret = num++ - num++;
ret ? num ?
4. 代码阅读
int num = 10;
int ret = ++num % num--;
ret ? num?
5. 代码阅读
int num1 = 10;
int num2 = 20;
int ret = num1 % num2;
ret = ?
ret = num1 / num2;
ret = ?