黑马程序员技术交流社区

标题: 小题目,别被绕进去哦 [打印本页]

作者: 陈捷旋    时间: 2015-3-22 11:41
标题: 小题目,别被绕进去哦
public class A
{
        public static void main(String[] args)
        {
                int i=0;
                for(i++;i++<10;i++);
                System.out.println(++i);
               
        }
}

问题是 i 打出来是多少呢?循环几次呢?这其实是一个答案,知道i 是几就知道几次了
要自己算哦,不能编译
作者: 20091042219    时间: 2015-3-22 13:24
3次   3 6 9
作者: kkqisheng    时间: 2015-3-22 13:58
本帖最后由 kkqisheng 于 2015-3-22 14:22 编辑

楼主在for循环后面少了花括号吧,也就是说for循环里面的执行内容是空的,这种情况下for循环究竟有没有被执行呢
作者: 无力去闹    时间: 2015-3-22 14:02
因为for循环后跟了一个分号所以不进入循环输出i的值,最后输出是13
作者: 南柯一梦境    时间: 2015-3-22 14:02
我算着是10
作者: Vampire-he    时间: 2015-3-22 14:14
表示理解不了,运行一下
作者: 何剑钟    时间: 2015-3-22 14:17
应该是13吧
作者: kkqisheng    时间: 2015-3-22 14:23
何剑钟 发表于 2015-3-22 14:17
应该是13吧

的确是13,但为什么路过for循环后会是13呢,求解
作者: 何剑钟    时间: 2015-3-22 14:26
kkqisheng 发表于 2015-3-22 14:23
的确是13,但为什么路过for循环后会是13呢,求解

路过for循环后,出来就是12啊,在++i,不就13了
作者: q8893616    时间: 2015-3-22 14:37
for(i++;i++<10;i++)应该是判断i++<10的时候是先判断i<10之后在++
作者: One_M    时间: 2015-3-22 16:55
有意思~!!!
作者: langmb    时间: 2015-3-22 17:30
好吧。。。。。。。。。。。。
作者: 山里孩子    时间: 2015-3-22 17:56
三行.:  3 6 9
作者: ccl|r    时间: 2015-3-22 18:09
不错不错,值得思考
作者: 山里孩子    时间: 2015-3-22 18:20
确实绕进去了.看了后面同学的提醒,for后有分号

想想是13
作者: 谢鸿    时间: 2015-3-22 18:32
不循环吧!答案是3。
作者: 青默    时间: 2015-3-22 19:21
楼主 讲解下吧 脑仁都疼了
作者: 何剑钟    时间: 2015-3-25 16:01
何剑钟 发表于 2015-3-22 14:17
应该是13吧

应该是比6次,循环5次吧
作者: huangchunwei    时间: 2015-3-25 17:08
i=13,应该是循环5次。:lol:lol
作者: 王振光    时间: 2015-3-25 18:52
13   到10的时候比较的其实是9 搞清楚这里就能解决了。
作者: 黑色救护车    时间: 2015-3-25 19:11
  1. for(i++;i++<10;i++);
  2. System.out.println(++i);
复制代码

我觉得这样思考就很明白了:
1)不必理会for循环中的第一部分 i++,因为初始化只执行一次;
2)当 i = 9 的时候,先判断 9 < 10 为真,后 i 自增 1,此时 i = 10,并且这个循环还会执行;
3)由于循环体为空,接着执行第三部分 i++,那么 i = 11;
4)最后,先判断 11 < 10 为假,后 i 自增 1,此时 i = 12;
5)最后打印语句,i 先自增 1;
最后输出结果:i = 13~ 哟西~
作者: 温大帅    时间: 2015-3-25 21:23
应该是3,6,9吧
作者: 法国外籍军团    时间: 2015-3-25 21:59
按照楼主的表达式 for循环之后没有{}   直接;结束了    所以肯定说for做没有循环体,最后只在控制台打印了System.out.println(++i);  ?所以结婚应该是13
作者: 陈捷旋    时间: 2015-3-25 23:56
huangchunwei 发表于 2015-3-25 17:08
i=13,应该是循环5次。

哥们就循环了3次分别是1     4      7  
作者: 陈捷旋    时间: 2015-3-25 23:58
何剑钟 发表于 2015-3-25 16:01
应该是比6次,循环5次吧

就循环了3次,1   4    7  ,多看看,能答多少次才是看懂了




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