+ - * / % ++ --
重点:++
++无论出现在变量前还是后,只要++运算结束,一定会自加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
关系运算符:
结果都是布尔类型。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();