4 运算符
4.1 算数运算符
-
运算符和表达式
- 运算符:操作变量和常量
- 用运算符将变量和常量连接起来的表达式
-
算数运算符
运算符 | 示例 |
---|---|
加 + | |
减 - | |
乘 * | |
除 / | 12/5=2 |
求模 % | 12%5=2 |
int a = 12;
int b = 5;
double c = 7.0;
double d = 3.0;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); // 12/5=2
System.out.println(a / c); // 12/7.0=1.7142857142857142
System.out.println(a / d); // 12/3.0=4.0
System.out.println(a % b); // 12%5=2
-
注意
- 两个整数
/
得到整数%
得到余数 - double参与
/
得到小数
- 两个整数
-
+ 运算符
- 字符 + 字符 / 字符 + 整数 ===> 运算过程转换为
int
char a = 'a'; // a = 97 A = 65 '0' = 48 char b = 'b'; int c = a + b; System.out.println(a + 1); // 98 System.out.println(a + b); // 195 System.out.println(c); // 195
- 字符串 + 字符串 ===> 拼接
String i = "lll"; String j = "mmm"; System.out.println(i + j); // lllmmm
- 整数/浮点数 + 字符串 ===> 从左到右,算数+ 或 拼接
int k = 12; int l = 13; System.out.println(i + k); // lll12 System.out.println(k + l + j); // 25mmm System.out.println(k + j + l); // 12mmm13 double m = 1.23; System.out.println(m + i); // 1.23lll double n = 1.23; System.out.println(m+n+i); // 2.46lll
- 字符 + 字符 / 字符 + 整数 ===> 运算过程转换为
-
算数运算符两边不同数据类型自动提升
char byte short
自动转换成int
char byte short
->int
->long
->float
->double
double e = 1 + 2.3; System.out.println(e); byte f = 23; short g = 34; int h = f + g; System.out.println(h);
4.2 赋值运算符
运算符 | 示例 | 等同 |
---|---|---|
赋值 = | int a = 10 | |
加 += | a += 10 | a = a + 10 |
减 -= | a -= 10 | a = a - 10 |
乘 *= | a *= 10 | a = a * 10 |
除 /= | a /= 10 | a = a / 10 |
求模 %= | a %= 10 | a = a % 10 |
- 赋值过程中的强制类型转换
short b = 12;
b += 20;
// b = (short) (b + 20) class java.lang.Short
4.3 自增自减运算符 ++ –
- 单独使用 前后无差别
int i = 10;
++i;
System.out.println(i); // 11
int i = 10;
i++;
System.out.println(i); // 11
-
与其它操作一起使用 赋值 打印
- 在前,先±后操作
int i = 10; System.out.println(++i); // i 先加 1 再 打印 // i = 11
- 在后,先操作后±
int i = 10; System.out.println(i++); // i 先 打印 再 加 1 // i = 11
4.4 关系运算符 结果为boolean值 true/false
运算符 | 含义 |
---|---|
== | 相等 |
!= | 不相等 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
int i = 20;
int k = 30;
System.out.println(i == k); // false
System.out.println(i != k); // true
System.out.println(i > k); // false
System.out.println(i >= k); // false
System.out.println(i < k); // true
System.out.println(i <= k); // true
System.out.println(i = k); // 先把k赋值给i,再打印i 结果 30
4.5 逻辑运算符
运算符 | 含义 | 判断 |
---|---|---|
& | 与 | 同真为真 |
| | 或 | 有真为真 |
! | 非 | 取反 |
^ | 异或 | 不同为真 |
int a = 4;
System.out.println(a > 3 & a < 6); // true & true = true
System.out.println(a > 3 | a > 6); // true | false = true
System.out.println(a > 3 ^ a > 6); // true ^ false = true
System.out.println(a > 3 ^ a < 6); // true ^ true = false
System.out.println(!(a > 3)); // !true = false
短路与&&短路或||
运算符 | 含义 | 判断 |
---|---|---|
&& | 与 | 左边为false 右边不执行 |
|| | 或 | 左边为true 右边不执行 |
&和| | 左边右边都执行 |
int i = 10;
int j = 20;
System.out.println((i++ > 100) && (j++ > 20));
System.out.println(i); // 11
System.out.println(j); // 20
int i = 10;
int j = 20;
System.out.println((i++ > 5) || (j++ > 20));
System.out.println(i); // 11
System.out.println(j); // 20
4.6 三元运算符
- 格式
关系表达式 ? 表达式一 : 表达式二
// 案例
a > b ? a : b
// 如果a>b 则 a 否则 b
// 真取左边 假取右边
- 案例
// 判断两个数相等
int a = 190;
int b = 300;
System.out.println(a == b ? true : false);
// 获取三个数的最大值
// 两两比较,临时变量存储最大值
int a = 12;
int b = 34;
int c = 45;
int res = a > b ? a : b;
res = res > c ? res : c;
- 获取终端输入
Scanner类
- 导包
- 创建对象
- 获取输入
sc.nextInt()整数 sc.next()字符串 nextDouble()小数
import java.util.Scanner; // 导包
public class DemoScanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 创建对象
System.out.println("输入int");
int a = sc.nextInt(); // 获取输入
System.out.println("a = " + a);
}
}