黑马程序员技术交流社区

标题: 求大神解一个小题 [打印本页]

作者: 青默    时间: 2015-3-22 19:40
标题: 求大神解一个小题
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后面的“;”


作者: 青默    时间: 2015-3-22 19:41
忽略上面那一堆玩意,从editplus上不知怎么吧路径都粘贴过来了
作者: 殷俊    时间: 2015-3-22 20:08
你看看,数字和循环的环节是对应的

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

无标题.png

作者: 青默    时间: 2015-3-22 23:19
殷俊 发表于 2015-3-22 20:08
你看看,数字和循环的环节是对应的

我感觉是每过一个i++都要+1一次所以我理解的是
for (i++;i++<10;i++);
        1       2           3
        4       5           6
        7       8           9
       10     11         12   (这一行要执行完括号内的语句再跳出 )
作者: ccl|r    时间: 2015-3-22 23:34
{:3_59:}{:3_60:}{:3_55:}
作者: 殷俊    时间: 2015-3-22 23:34
青默 发表于 2015-3-22 23:19
我感觉是每过一个i++都要+1一次所以我理解的是
for (i++;i++

你的结果对,但是过程有问题,初始化赋值不可能执行多次,在一进入循环,先初始化赋值,后面的循环就不会初始化了,所以,4、7、10不是初始化赋值那里出来的,也就是说第一个i++,只初始化赋值时用了一次,后面就不执行他了
作者: 混乱的世界    时间: 2015-3-23 00:50
额,楼上说的很清楚了,for(语句一;语句二;语句三)  语句一只在刚进入for循环时执行一次,也就是第一次循环时,后面循环就是语句二作为循环结束条件判断,语句三是在每次循环结束之后执行
作者: Etby    时间: 2015-3-23 02:14
直接看条件即可 进入循环最后一次只能是9 但是i++<10 还是要加一次的 所以是10 然后是循环结束的++ 就是11了   然后在进行判断 虽然无法进入循环 但是i++ 还是需要循环的 就是12了 最后的输出需要先增加再输出就是13了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2