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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈捷旋 中级黑马   /  2015-3-22 11:41  /  2449 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class A
{
        public static void main(String[] args)
        {
                int i=0;
                for(i++;i++<10;i++);
                System.out.println(++i);
               
        }
}

问题是 i 打出来是多少呢?循环几次呢?这其实是一个答案,知道i 是几就知道几次了
要自己算哦,不能编译

评分

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

查看全部评分

29 个回复

正序浏览
何剑钟 发表于 2015-3-25 16:01
应该是比6次,循环5次吧

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

点评

循环3次?我把你的代码运行了一次,for的循环体输出是5次吧。。。为什么是3次?还是你意思的循环是指?  发表于 2015-3-26 10:34
回复 使用道具 举报
huangchunwei 发表于 2015-3-25 17:08
i=13,应该是循环5次。

哥们就循环了3次分别是1     4      7  
回复 使用道具 举报
法国外籍军团 来自手机 中级黑马 2015-3-25 21:59:14
23#
按照楼主的表达式 for循环之后没有{}   直接;结束了    所以肯定说for做没有循环体,最后只在控制台打印了System.out.println(++i);  ?所以结婚应该是13
回复 使用道具 举报
应该是3,6,9吧
回复 使用道具 举报
  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~ 哟西~
回复 使用道具 举报
13   到10的时候比较的其实是9 搞清楚这里就能解决了。
回复 使用道具 举报
i=13,应该是循环5次。:lol:lol
回复 使用道具 举报

应该是比6次,循环5次吧
回复 使用道具 举报
楼主 讲解下吧 脑仁都疼了
回复 使用道具 举报
不循环吧!答案是3。
回复 使用道具 举报
确实绕进去了.看了后面同学的提醒,for后有分号

想想是13
回复 使用道具 举报
ccl|r 中级黑马 2015-3-22 18:09:50
14#
不错不错,值得思考
回复 使用道具 举报
三行.:  3 6 9
回复 使用道具 举报
好吧。。。。。。。。。。。。
回复 使用道具 举报
One_M 中级黑马 2015-3-22 16:55:04
11#
有意思~!!!
回复 使用道具 举报
for(i++;i++<10;i++)应该是判断i++<10的时候是先判断i<10之后在++
回复 使用道具 举报
kkqisheng 发表于 2015-3-22 14:23
的确是13,但为什么路过for循环后会是13呢,求解

路过for循环后,出来就是12啊,在++i,不就13了
回复 使用道具 举报

的确是13,但为什么路过for循环后会是13呢,求解
回复 使用道具 举报
应该是13吧
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马