1、运算符🔥
1.1、算数运算符🔥
+ - * / %
三种含义:
1. 运算
public class Demo01 { public static void main(String[] args) { int a=20; int b=10; System.out.println(a+b);
|
2.正负
int a1=+5; System.out.println(a1);
|
3.拼接,连接符
字符串和其他数据类型进行运算,结果一定是字符串类型
String s1="abc"; int a2=10; String s3 = s1 + a2; System.out.println(s3); System.out.println("helloworld"+a2+"abc"+'d'+true+3.14);
int m=5,n=8; System.out.println(m+"+"+n+"="+(m+n)+";");
|
4、 符号
① 运算 ② 正负
System.out.println(10-100); System.out.println(10-(-5));
|
6.乘号
System.out.println(3.5 * 2.6); System.out.println(2 * 3);
|
7.除以
System.out.println(10/2); System.out.println(10/3); System.out.println(0/3); System.out.println(3/3);
|
- 取模 ,求余数
System.out.println(10%3); System.out.println(5%5); System.out.println(2%10); System.out.println(0%10); System.out.println(3.5%2); } }
|
++ - - (重点)
public class Dome02 { public static void main(String[] args) { int a=5; a++; System.out.println(a);
int b=5; ++b; System.out.println(b); } }
|
public class Demo03 { public static void main(String[] args) { int a=5; int b = (a++); System.out.println("a:"+a); System.out.println("b:"+b);
int m=5; int n = ++m; System.out.println("m:"+m); System.out.println("n:"+n); } }
|
总结:++在变量之前,先自增1,后其他操作!
++在变量之后,先其他操作,再自增1!
即使有小括号,也不影响!
1.2、赋值运算符🔥
+= - = ***= /= %=**
public class Demo04 { public static void main(String[] args) { int a = 5; a += 2; System.out.println(a); a -= 3; System.out.println(a); a *= 2; System.out.println(a); a /= 4; System.out.println(a); a %= 1; System.out.println(a); } }
|
问题1:a += 2 是不是等价于与 a = a+2 ?
答:不等价
byte a1 = 5; a1 += 2; System.out.println(a1); byte a2 = 5; a2 = (byte)(a2 + 2); System.out.println(a2); } }
|
问题2:+= 和 =+ 的问题
int m = 10; m += 2; System.out.println(m);
int n = 10; n=+2; System.out.println(n);
} }
|
1.3、比较(关系)运算符🔥
> < >= <= == != (不等于)
比较运算符的结果都是boolean类型的字面值(true,false)
public class Demo05 { public static void main(String[] args){
int a = 5,b = 10; System.out.println(a == b); System.out.println(a != b); System.out.println(a > b); System.out.println(a < b); System.out.println(a >= b); System.out.println(a <= b); System.out.println(a >= ++b);
System.out.println(a == b); System.out.println(!!!!!!!!!!!(a!=b)); } }
|
1.4、逻辑运算符🔥
用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。
1、逻辑或 | ,逻辑与 & ,^ 逻辑异或,取反!
public class Demo06 { public static void main(String[] args) {
int a=7,b=5,c=10; System.out.println(a>b | a>c);
System.out.println(a>b & a<c);
System.out.println(a>b ^ a<c); System.out.println(a>b ^ a>c);
System.out.println(!true); boolean flag = ! (5 != 10); System.out.println(flag);
} }
|
2、短路或 || ,短路与 &&
|| 短路或
|| 短路或和 | 最终结果都是一样的!
区别:|| 短路或,只要第一个条件就能判断最终结果的,第二个条件就不执行! 第一个条件成立,第二个条件就不判断!!!
public class Demo07 { public static void main(String[] args) { int a=5,b=10; System.out.println( b>a || 1==a++ ); System.out.println(a);
|
&& 短路与
只要第一个条件就能判断最终结果的,第二个条件就不执行!
第一个条件不成立,第二个条件不会执行!
System.out.println(5>30 && 1==b++); System.out.println(b); } }
|
1.5、三元运算符(三目运算)🔥
基本语法: 数据类型 变量名 = 条件表达式 ? 字面值1 :字面值2;
注意: 字面值必须和数据类型匹配
条件表达式:只要结果是boolean类型字面值,就是条件表达式
运算规则:
1.如果条件表达式为true,运算后的结果是字面值1;
2.如果条件表达式为false,运算后的结果是字面值2;
理解:条件表达式是否成立,决定哪一个字面值赋值给变量,
如果条件表达式成立,第一个字面值赋值给变量,
如果条件表达式不成立,第二个字面值赋值给变量!
public class TernaryOperator01 { public static void main(String[] args) { int a = 15; int b = 30; int result = a > b ? a++ : b--; System.out.println("result="+ result); } }
|
应用场景: 这次考试如果及格,爸爸带我去游乐场,否则爸爸揍我一顿!
用户在控制台输入成绩,来判断是去游乐场还是揍我一顿!
public class TernaryOperator02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入您的成绩?"); double score = sc.nextDouble(); String result = score >= 60.0 ? "爸爸带我去游乐场!":"爸爸揍我一顿!"; System.out.println(result); } }
|
三元运算符 练习
public class TernaryOperatorExercise { public static void main(String[] args) { int n1 = 456; int n2 = 49; int n3 = 234;
int max1 = n1 > n2 ? n1 : n2; int max2 = max1 > n3 ? max1 : n3; System.out.println("最大数="+max2); } }
|