活动地址:CSDN21天学习挑战赛
一个人静静坐在电脑面前写代码的感觉,那是什么感觉?那是武林高手闭关修炼的感觉。
运算符
符号 | 作用 | 说明 |
---|---|---|
算数运算符 | ||
+ - * / | 加减乘除 | 与“÷”相同,注意:在Java中两个整数相除结果还是整数:10/3=3 |
% | 取余 | 获取的是两个数据做除法的余数:10%3=1 |
自增自减运算符 | ||
++ – | 自增 自减 ±1运算符 | ++、–。对当前变量值+1、-1 |
赋值运算符 | ||
+= -= *= /= %= | 取加减乘除余后赋值 | 类似于:a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a |
关系运算符 | ||
== != > >= < <= | 关系运算符 类似于: | a==b,判断a和b的值是否相等,成立为true,不成立为false |
逻辑运算符 | ||
& | 逻辑与 | 必须都是true,结果才是true; 只要有一个是false,结果一定是false(无论左边是 false还是 true,右边都要执行) |
逻辑或 | 只要有一个为true、结果就是true(无论左边是 false还是 true,右边都要执行) | |
! | 逻辑非 | 你真我假、你假我真。 !true=false 、 !false= true |
^ | 逻辑异或 | 如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true |
三元运算符 | ||
条件表达式 ? 值1 : 值2; | 关系表达式的值运算符 | 首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2 |
运算符优先级
1.运算符有不同的优先级,所谓优先级就是表达式运算中的运算孙女婿.如右下表,上一行运算符总优先于下一行.
2.只有单目运算符.赋值运算符是从右向左运算的.
其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替代,示例代码:
int m = 12;
int n = m << 1 + 2;
int n = m << (1 + 2); //这样更直观
这样书写代码,更方便编写代码,也便于代码的阅读和维护。
注意:
1.+号可以做连接符
2.自增、自减运算符:如果单独使用放前后是没有区别的。
⚫ 非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
⚫ 非单独使用:在变量后 ,先使用变量,再进行变量自增/自减
3.在做相等判断是,千万不要把 == 误写成 =
4.逻辑异或“^” :相同是false、不同是true
短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
123,
123%10=3 获取个数位
123/10%10=2 十数位
123/10/10%10=1 百数位
int c = 10;
int d = 5;
int rs3 = c++ + ++c - --d - ++d + 1 + c--;
System.out.println(rs3); // 26
System.out.println(c); // 11
System.out.println(d); // 5
// 1.c++ 的时候 c++ = 10 c=11 d=5
// 2.c++ + ++c 的时候 10 + 12=22 c=12 d=5
// 3.c++ + ++c - --d 的时候 10 + 12 - 4=18 c=12 d=4
// 4.c++ + ++c - --d - ++d 的时候 10 + 12 - 4 -5=13 c=12 d=5
// 5.c++ + ++c - --d - ++d + 1 + c--的时候 10 + 12 - 4 - 5 + 1 + 12=26 c=11 d=5