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);
}
}