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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 青默 中级黑马   /  2015-3-22 19:40  /  1356 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

file:///C:\Users\Administrator\Documents\Tencent Files\568809936\Image\Group\3Q4(()BWM0O]LNV%7CCDTR0.pngclass  suny
{
        public static void main(String[] args)
        {
                int i=0;
                for(i++;i++<10;i++);
                System.out.println(++i);               
        }
}
我已经快想不通了 怎么就是13呢  怎么个流程 大家注意for后面的“;”

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1

查看全部评分

7 个回复

倒序浏览
忽略上面那一堆玩意,从editplus上不知怎么吧路径都粘贴过来了
回复 使用道具 举报
你看看,数字和循环的环节是对应的

无标题.png (8.49 KB, 下载次数: 23)

无标题.png

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
殷俊 发表于 2015-3-22 20:08
你看看,数字和循环的环节是对应的

我感觉是每过一个i++都要+1一次所以我理解的是
for (i++;i++<10;i++);
        1       2           3
        4       5           6
        7       8           9
       10     11         12   (这一行要执行完括号内的语句再跳出 )
回复 使用道具 举报
{:3_59:}{:3_60:}{:3_55:}
回复 使用道具 举报
青默 发表于 2015-3-22 23:19
我感觉是每过一个i++都要+1一次所以我理解的是
for (i++;i++

你的结果对,但是过程有问题,初始化赋值不可能执行多次,在一进入循环,先初始化赋值,后面的循环就不会初始化了,所以,4、7、10不是初始化赋值那里出来的,也就是说第一个i++,只初始化赋值时用了一次,后面就不执行他了
回复 使用道具 举报
额,楼上说的很清楚了,for(语句一;语句二;语句三)  语句一只在刚进入for循环时执行一次,也就是第一次循环时,后面循环就是语句二作为循环结束条件判断,语句三是在每次循环结束之后执行
回复 使用道具 举报
Etby 中级黑马 2015-3-23 02:14:52
8#
直接看条件即可 进入循环最后一次只能是9 但是i++<10 还是要加一次的 所以是10 然后是循环结束的++ 就是11了   然后在进行判断 虽然无法进入循环 但是i++ 还是需要循环的 就是12了 最后的输出需要先增加再输出就是13了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马