Java i++ 和 ++i 的区别|Java 刷题打卡

155 阅读1分钟

本文正在参加「Java主题月 - Java 刷题打卡」,详情查看 活动链接

概念描述:

  • i++ 先赋值在运算,例如 a=i++,先赋值a=i,后运算i=i+1,所以结果是a==1
  • ++i 先运算在赋值,例如 a=++i,先运算i=i+1,后赋值a=i,所以结果是a==2

简易描述:

  • a=i++ 等同于 a= i ; i = i+1;
  • a=++i 等同于 i = i+1; a=i
// i++
int temp = i;
i = i+1;
return temp;

// ++i
i = i + 1;
int temp = i;
return temp;

详细描述:

  • i++ 即后加加,原理是:先自增,然后返回自增之前的值
  • ++i 即前加加,原理是:先自增,然后返回自增之后的值

练习题:

第一题

int i = 0;
i = i++; 
System.out.println("i = " + i); 

第二题

int a = 2; 
int b = (3 * a++) + a;
System.out.println(b);

第三题

int a = 2; 
int b = a + (3 * a++);
System.out.println(b);

第四题

int i = 1;
int j = 1;
int k = i++ + ++i + ++j + j++; 
System.out.println(k);

第五题

int a = 0;
int b = 0;
a = a++;
b = a++;
System.out.println("a = " + a + ", b = " + b);

因为在看代码的时候发现了很多地方都在使用++i,比如HashMap里面判断是否需要扩容的时候,根据 (++size > threshold ) 这个判断是否需要进行扩容。发现自己对i++和++i的概念有些模糊,于是找了一些博客看了之后敲下了这篇文章。题目答案会放在文章的评论处。如有不正确的地方欢迎指正,希望本篇文章可以帮助到你~