运算符


算术运算符:


​+ - * / % ++ --​


重点:++

++无论出现在变量前还是后,只要++运算结束,一定会自加1.

int i = 10;
i++;
System.out.println(i); // 11
int k = 10;
++k;
System.out.println(k); // 11

++出现在变量前:
int i = 10;
int k = ++i;
System.out.println(k); // 11
System.out.println(i); // 11

++出现在变量后:
int i = 10;
int k = i++;
System.out.println(k); // 10
System.out.println(i); // 11

int i = 10;
System.out.println(i++); // 10
解开以上题目的窍门是什么?拆代码
int temp = i++;
System.out.println(temp); // 10
System.out.println(i); // 11

int i = 10;
System.out.println(++i);
会拆代码:
int temp = ++i;
System.out.println(temp); // 11
System.out.println(i); // 11

关系运算符:


​> >= < <= == !=​


结果都是布尔类型。true/false

逻辑运算符:


​& | ! && ||​


逻辑运算符要求两边都是布尔类型,并且最终结果还是布尔类型。

左边是布尔类型 & 右边还是布尔类型 -->最终结果还是布尔类型。

& 两边都是true,结果才是true

| 一边是true,结果就是true

! 取反

&&实际上和&运算结果完全相同,区别在于:&&有短路现象。

左边的为false的时候:&& 短路了。

左边为true的时候:|| 短路了。

赋值运算符:


​= += -= *= /= %=​


重要规则:

扩展赋值运算符在使用的时候要注意,不管怎么运算,最终的运算结果类型不会变。

byte x = 100; // byte最大值127

x += 1000; // 编译可以通过,x变量还是byte类型,只不过损失精度了。

x += 1000; 等同于: x = (byte)(x + 1000);

int i = 10;

i += 10; // 等同于:i = i + 10; 累加。

三目运算符:


布尔表达式 ? 表达式1 : 表达式2


布尔表达式为true,选择表达式1作为结果。

反之选择表达式2作为结果。

字符串连接运算符:


​+​


+两边都是数字,进行求和。

+有一边是字符串,进行字符串的拼接。

+有多个的话,遵循自左向右依次执行:1 + 2 + 3

如果想让其中某个加号先执行,可以添加小括号:1 + (2 + 3)

注意:字符串拼接完之后的结果还是一个字符串。

技巧:怎么把一个变量塞到一个字符串当中。

String name = "jackson";
System.out.println("登录成功,欢迎"+name+"回来");

怎么接收用户键盘输入?

java.util.Scanner s = new java.util.Scanner(System.in);

// 接收整数

int i = s.nextInt()

// 接收字符串

String str = s.next();