A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvwangxiao 中级黑马   /  2016-3-17 20:44  /  629 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class Test3 {
  2.          public static void main(String[] args) {
  3.               int i = 3;
  4.               for(int j = 0; j < 5;j++){
  5.                  i = i++;
  6.               }
  7.               System.out.println(i);
  8.         }
  9. }
复制代码


这个题的的结果竟然是3?

7 个回复

倒序浏览
i = i++ 是先赋值再递增  i的值一直没变
回复 使用道具 举报
i先把值取出然后自增i变成了4,最后将取出的值付给了i也就是3所以i的值一直没变
回复 使用道具 举报
一直没变吧,老梗了
回复 使用道具 举报
好吧。。。。。。。。。。这个真是
回复 使用道具 举报
++ --  的学问挺大的  基础班阳哥笔记里  第二个好像就有关于这方面的讲解 i++  先赋值再递增
回复 使用道具 举报
zxydeh 中级黑马 2016-3-17 21:57:32
7#
感觉自己又要从头看了~~~
回复 使用道具 举报
这个可以将i = i++; 分解成三步来操作
1. 先计算表达i++ 的值.在本题中 既表达式 i++ 的值是3,
2.再讲变量i自增1 即为 i=4;
3.在将 i++ 表达式的结果 即第一步的值 3
,又赋值给了变量i 所有变量i,执行完i=i++; 后每次都是3
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马