运算符的介绍
1. 算术运算符
-
+,-,*./,%,++,--,重点讲解%、++
-
自增:++
作为独立的语句使用:
前++和后++都完全等价于i=i+1;作为表达式使用
前++∶++i先自增后赋值后++;i++先赋值后自增 -
--, +、-、*是一个道理,完全可以类推。
- 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x= 10/3,结果是3
当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一
个本质运算。
当自增当做一个独立语言使用时,不管是++i;还是 i++;都是一样的,等价 - 当自增当做一个表达式使用时j=++i等价[?] i=i+1; j+i;
当自增当做一个表达式使用时j=i++等价[?] j=i; i=i+1;
2. 关系运算符 [比较运算符]
-
关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false
-
关系表达式 经常用在 if 结构的条件中或循环结构的条件中
- 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。
- 关系运算符组成的表达式,我们称为关系表达式。 a > b
- 比较运算符"=="不能误写成"="
3.逻辑运算符
用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。
说明逻辑运算规则:
- a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
- a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
- a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
- a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
- !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
- a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
- && 和 & 基本规则
名称 语法 特点
短路与&& 条件 1&&条件 2 两个条件都为 true,结果为 true,否则 false
逻辑与& 条件 1&条件 2 两个条件都为 true,结果为 true,否则 false
&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低 开发中, 我们使用的基本是使用短路与&&, 效率高
名称 语法 特点
短路或|| 条件 1||条件2 两个条件中只要有一个成立,结果为 true,否则为false
|逻辑或 条件 1|条件 2 只要有一个条件成立,结果为 true,否则为 false
||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
! 非(取反) !条件 如果条件本身成立,结果为 false,否则为 true
3. 赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量。
赋值运算符的分类 = 基本赋值运算符 = int a = 10;
复合赋值运算符 += ,-= ,*= , /= ,%= 等 , 重点讲解一个 += ,其它的使用是一个道理 a += b; [等价 a = a + b; ] a -= b; [等价 a = a - b; ]
- 运算顺序从右往左 int num = a + b + c;
- 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a;
- 复合赋值运算符等价于下面的效果 比如:a+=3;等价于 a=a+3; 其他类推
- 复合赋值运算符会进行类型转换。 byte b = 2; b+=3; b++;
4. 三元运算符
条件表达式 ? 表达式 1: 表达式 2;
运算规则: 1. 如果条件表达式为 true,运算后的结果是表达式 1;
- 如果条件表达式为 false,运算后的结果是表达式 2;
- 口诀: [一灯大师:一真大师]
表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
三元运算符可以转成 if--else 语句
int res = a > b ? a++ : --b;
if ( a > b) res = a++; else res = --b;
5. 运算符优先级
标识符的命名规则和规范
包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.abc.com
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz[小驼峰, 简称 驼峰法] 比如: tankShotGame
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 比如 :定义一个所得税率 TAX_RATE
导入该类的所在包, java.util.*
输入语句
Scanner scanner = new Scanner(System.in);
String a = scanner.next();
原码反码补码
算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位
算术左移 <<: 符号位不变,低位补 0
>>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0
特别说明:没有 <<< 符号
应用案例
1) int a=1>>2; //1 => 00000001 => 00000000 本质 1 / 2 / 2 =0 2) int c=1<<2; //1 => 00000001 => 00000100 本质 1 * 2 * 2 = 4
标签:false,++,运算符,条件,true,表达式
From: https://www.cnblogs.com/zfDr-dr/p/17963942