1.运算符和表达式
运算符:对常量或变量进行操作的符号 表达式:用运算符把常量或者变量连接起来符合Java语法的式子
int a = 5;
int b = 10;
int c = a + b;
2.算术运算符
- 加、+
- 减、-
- 乘、*
- 除、/
- 取余、%
- (前)++、(前)- -:先自增自减,后运算
- (后)++、(后)- -:先运算,后自增自减
- 字符的 “+” 操作:拿字符在计算机底层对应的数值来进行计算的
- 字符串的 “+” 操作:
在 “+” 操作中出现字符串时,这个 “+” 是字符串连接符,而不是算数运算符 在 “+” 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 “+” 操作时,从左到右逐个执行(碰到字符串就作连接符)
System.out.println("nb" + 66 + 6)
System.out.println(6 + 66 + "nb")
3.赋值运算符
- =
- +=、-=、*=、/=、%=(扩展运算符)
- 扩展运算符隐含了强制类型转换
int i = 10;
int a = 10;
a += i;
a *= i;
short b = 10;
b += 20;
b = b + 20
4.比较运算符
- ==:等于,判断两个值相等,一定是双=
- !=:不等于
- >
- <
- >=
- <=
特别说明
- 比较运算符的结果都是boolean类型
- > < >= <= :只能使用在数值类型的数据之间。
- == 和 !=:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。
5.逻辑运算符
- &:与
- |:或
- &&:短路与
- ||:短路或
- !:非
- ^:异或
区分&与&&
- 相同点1:&与&&的运算结果相同
- 相同点2:当符号左边是true时,二者都会执行符号右边的运算
- 不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算
- 开发中,推荐使用&&
boolean b1 = true;
b1 = false;
int num1 = 10;
if(b1 & (num1++ > 0)){
System.out.println("hello");
}else{
System.out.println("hi");
}
System.out.println("num1 = " + num1);
boolean b2 = true;
b2 = false;
int num2 = 10;
if(b2 && (num2++ > 0)){
System.out.println("hello");
}else{
System.out.println("hi");
}
System.out.println("num2 = " + num2);
区分|与||
- 相同点1:|与||的运算结果相同
- 相同点2:当符号左边是false时,二者都会执行符号右边的运算
- 不同点:当符号左边是true时,| 继续执行符号右边的运算,而 || 不再执行符号右边的运算
- 开发中,推荐使用||
boolean b3 = false;
b3 = true;
int num3 = 10;
if(b3 | (num3++ > 0)){
System.out.println("hello");
}else{
System.out.println("hi");
}
System.out.println("num3 = " + num3);
boolean b4 = false;
b4 = true;
int num4 = 10;
if(b4 || (num4++ > 0)){
System.out.println("hello");
}else{
System.out.println("hi");
}
System.out.println("num4 = " + num4);
6.三元运算符
- 格式:关系表达式 ? 表达式1 : 表达式2;
- 范例:a > b ? a : b
- 计算规则:首先计算关系表达式的值,如果值为true,运行表达式1;如果值为false,运行表达式2
- 表达式1和表达式2要求是一致的
- 三元运算符可以嵌套使用
- 凡是可以使用三元运算符的地方,都可以改写为if-else。反之,不成立。
- 如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。
|