🍔final,字符常量,Scanner的使用

+计算规则

无论这个变量是否参与到运算中去,只要用++运算符,这个变量本身就加1操作
只是说如果变量参与到运算中去的话,对运算结果是产生影响:
看++在前还是在后,如果++在后:先运算,后加1 如果++在前,先加1,后运算

  1. public class TestOpe04{
  2. public static void main(String[] args){
  3. int a = 5;
  4. a++;//理解为:相当于 a=a+1 操作
  5. System.out.println(a);//6
  6. a = 5;
  7. ++a;//理解为:相当于 a=a+1 操作
  8. System.out.println(a); //6
  9. //总结:++单独使用的时候,无论放在前还是后,都是加1操作
  10. //将++参与到运算中:
  11. //规则:看++在前还是在后,如果++在后:先运算,后加1 如果++在前,先加1,后运算
  12. a = 5;
  13. int m = a++ + 7;//先运算 m=a+7 再加1: a = a+1
  14. System.out.println(m);//12
  15. System.out.println(a);//6
  16. a = 5;
  17. int n = ++a + 7;//先加1 a=a+1 再运算: n = a+7
  18. System.out.println(n);//13
  19. System.out.println(a);//6
  20. }
  21. }
  1. public class TestOpe05{
  2. public static void main(String[] args){
  3. int a = 5;
  4. System.out.println(a++ + a++);
  5. System.out.println(a++ + ++a);
  6. System.out.println(++a + a++);
  7. System.out.println(++a + ++a);
  8. }
  9. }

image.png
面试题:两个数交换的四种方式

a+=b 和 a=a+b 区别:

  1. a+=b 可读性稍差 编译效率高 底层自动进行类型转换
  2. a=a+b 可读性好 编译效率低 手动进行类型转换

    面试题

  3. 请问a+=b相当于a=a+b,那么也相当于 a=b+a吗?

image.png

  1. 下面的代码哪一句出错: 4

byte a = 10; —->1
int b = 20; —->2
a+=b; ——>3
a = a+b ;——>4

更正: a = (byte)(a+b);