千家信息网

Java中的i++和++i的区别与使用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"Java中的i++和++i的区别与使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java中的i++和++i的区别与使用"吧!书
千家信息网最后更新 2026年10月31日Java中的i++和++i的区别与使用

这篇文章主要讲解了"Java中的i++和++i的区别与使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java中的i++和++i的区别与使用"吧!

书上对 i ++ 和 ++ i 的解释如下:

int i = 3,a = 0 ;i ++ : 先赋值再运算;例如:a = i ++; 先赋值 a = i ,再运算 i = i + 1 ;所以输出结果为 a ==3;++ i : 先运算再赋值;例如:a = i ++; 先运算 i = i + 1 ,再 赋值 a = i ;所以输出结果为 a ==4;

懂了吗?我想大部分人会跟我一样 一脸懵逼,明明都 + 1 了,咋上面输出结果是 3 下面就是 4 呢?哈哈~不要着急,接下来我将分享一下我对它们的理解,希望对你们有帮助。

认识"++"与"--"

"++"与"--"分别称作自增操作符和自减操作符,是对变量进行加 1 和减 1 的操作符。

认识 i + + 与 i --i++读为 i 加 加,i--读为 i 减减,这些操作符分别称为后置自增操作符和后置自减操作符。

以 i++为例,先来介绍一下i++, i++ 的计算方法分为以下5个步骤

先开批一个临时存储区 将 i 的值复制到存储区 i 自身+1 临时存储区的值等待被调用(参与运算、输出、赋值) 若 i 被调用则输出值为 i ,否则输出 i++

图解如下:

接下来我会举例说明

public class test{ public static void main(String[] args){ int i = 3; /* 创建一个变量i,里面放i的初始值3,先开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为3 */ i ++;//i自身加1,此时i的值为4 System.out.print(i);//打印输出i,因为i没有被调用,故输出i自身的值4 System.out.print(i++); /* 上一行代码中i的值已经变成了4,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为4,i自身的值+1变为5; i++被输出调用,故输出存储区的值4 */ int j = i++; System.out.print(j); /* 上一行代码中i的值已经变成了5,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为5,i自身的值+1变为6; i++被赋值调用,故输出存储区的值5 */ System.out.print(i);//没被调用,故打印值为i自身的值6 i = i++; System.out.print(i); /* 上一行代码中i的值已经变成了6,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为6,i自身的值+1变为7; i++被赋值调用,故输出存储区的值6 */ i = i++; System.out.print(i); /* 上一行代码中i的值为6,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为6,i自身的值+1变为7; i++被赋值调用,故输出存储区的值6 */ }}

同理可得 i- - 的计算方法如下,

先开批一个临时存储区 将 i 的值复制到存储区 i 自身 -1 临时存储区的值等待被调用(参与运算、输出、赋值) 若 i 被调用则输出值为 i ,否则输出 i - -

举例说明

public class test01{ public static void main(String[] args){ int i = 5; /* 创建一个变量i,里面放i的初始值5,先开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为5 */ i--;//i自身减1,此时i的值为4 System.out.println(i);//打印输出i,因为i没有被调用,故输出i自身的值4 System.out.print(i--); /* 上一行代码中i的值已经变成了4,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为4,i自身的值-1变为3; i--被输出调用,故输出存储区的值4 */ int j = i--; System.out.print(j);//3 /* 上一行代码中i的值已经变成了4,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为4,i自身的值-1变为3; i--被赋值调用,故输出存储区的值3 */ System.out.print(i);//没被调用,故打印值为i自身的值3 i = i--; System.out.print(i);//2 /* 上一行代码中i的值已经变成了3,再开辟一个临时存储区, 将i的值复制到存储区,此时存储区里面i的值为3,i自身的值-1变为2; i--被赋值调用,故输出存储区的值2 */ }}

认识+ + i 与 - - i

++i 读作加加i,--i读作减减i,分别称作前置自增操作符和前置自减操作符。相对于i++来说,++i 的运算思路比较简单,只进行简单的+1操作即可。

举例说明:

public class test{ public static void main(String[] args){ i = 1; j = i++ + ++i + ++i + i++; // 1 3 4 4 /* i++: 赋值调用,故打印值为1,临时存储区放的值为2 ++i:i的值+1,故值为3 ++i:i的值+1,故值为4 i++:赋值调用,故输出临时存储区的值4,i自身值+1为5 */ System.out.print(j);//故输出结果为12 System.out.print(i);//没有参与调用,故输出i自身的值5 System.out.print(++i);//输出值为6

同理,--i ,也只是在自身基础上- 1即可。

举例说明:

public class test01{ public static void main(String[] args){ int i = 5; --i; System.out.println(i);//i自身减1,值为4 System.out.print(--i);//i自身减1,值为3 }}

使用自增操作符和自减操作符可以使表达式更加简短,但也会使它们比较复杂且难以读懂。比如上述代码中出现的j = i++ + ++i + ++i + i++;只是为了测试大家是否更好的掌握了i ++与 ++ i,但在实际编程过程中应该避免。

我的总结如下:

i++、i-- :若参与调用,输出值不 +1,否则 +1 ++i、--i :无论是否参与调用,输出值均 +1 希望大家在读懂我上述描述的基础上,再合理运用这两句话 ~

附:文章开头那道题,现在用我的方法来做,是不是易如反掌啦~

int i = 3,a = 0 ;

i ++ : 例如:a = i ++;因为赋值调用了,所以输出值为临时存储区先复制的i的值,即 a ==3;

++ i : 例如:a = i ++; 输出结果直接 +1 即结果为 a ==4;

感谢各位的阅读,以上就是"Java中的i++和++i的区别与使用"的内容了,经过本文的学习后,相信大家对Java中的i++和++i的区别与使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

存储 输出 操作符 代码 一行 运算 结果 变量 方法 学习 接下来 内容 只是 基础 就是 思路 文章 先开 复杂 着急 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 伟宏互联网科技 科技赋能下的互联网金融 互联网科技资迅 智网互联网科技 浩特互联网科技 万达互联网科技 南山科技园互联网公司有哪些 成都铂石互联网科技做什么的 互联网科技公司有风险吗 辽宁互联网新科技 互联网媒体平台算高科技产业 国大互联网教育科技有限公司工作 畅思互联网科技 浙南科技城互联网大厦建设工程 下一代互联网重大应用科技园 西安有哪些互联网高科技企业 第三届互联网大会安防黑科技 科技互联网专业工作会议发言稿 黑龙江互联网科技公司 中国互联网科技股 科技互联网政务服务 互联网金融和金融科技 来此购互联网科技有限公司 江阴互联网智能科技产品进口 成都互联网科技公司工作好不好 银川新华互联网科技学校联系电话 众安科技工业互联网合作 富国互联网金融科技混合基金 科技和互联网行业的特点
0