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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo
{
        public static void main(String[] args)
        {
                for(int x = 0 ;x<4;x++)
                {
                        for(int y = 4;y>2;y--)
                        {
                                System.out.println(x+" "+y);
                        }
                        if(x== 1)
                        {
                                x++;
                        }
                }
        }
}

10 个回复

正序浏览
本帖最后由 黑马-李勇 于 2012-7-29 16:29 编辑

没什么好说的,给你画个图,对了,没看楼上的回复,如果重了请版主删除。      图中"所经"改成"所以"{:soso_e101:}

for.JPG (21.99 KB, 下载次数: 37)

for.JPG

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 马州州 于 2012-7-29 16:08 编辑

class Test3
{
        public static void main(String[] args)
       {
             for(int x = 0 ;x<4;x++)1.执行外循环 5.x++,这是x=1,再次循环 10.x++,这时x=3了,继续执行循环 14.执行x++,这是x=4,不符合循环条件,循环结束
            {
                     for(int y = 4;y>2;y--)2.执行内循环 6.再次执行内循环 11.再次执行内循环
                     {
                         System.out.println(x+" "+y;3.打印0,4  0,3   7.打印1,4   1,3 12.打印 3,4    3,3
                     }
                   if(x== 1)4.判断x是否==1,不等 8.判断x是否==1,等于1,所以执行 13.判断x是否==1,不等
                 {
                        x++;9.x等于1,所以执行x++,这是x=2,

                 }
            }
       }
}
楼主看上面我再注释里面的标号,整个程序从1开始到14步结束,每一步都有编号,按照编号去看,很容易明白的
再说一下for循环的执行顺序,不过我看上面那位配图的同学,那个图非常不错,楼主可以先看看那个图,再看我的执行顺序

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
还是多看看网上下载的毕老师的视频
回复 使用道具 举报
谁帮我说下这小程序的运行步骤
class Demo
{
        public static void main(String[] args)
        {
                for(int x = 0 ;x<4;x++)
                {
                        for(int y = 4;y>2;y--)
                        {
                                System.out.println(x+" "+y);
                        }
                        if(x== 1)
                        {
                                x++;
                        }
                }
        }
}

因为当外循环x=0的时候,内循环要执行完y>2的条件,当y=4自减到不满足大于2的时候,内循环才结束。注意,你问的是为什么还是
y=4,那是因为上次内循环的自减,并不能代表这一次的循环,因为上一次的循环已经结束了,而这一次又是一次新的循环了,所以
就还是y=4开始的。而因为外循环并还没有结束过一次循环,所以还得接着上一次的循环,继续循环。
附加一张循环流程图如下:

for循环运行流程.JPG (27.76 KB, 下载次数: 36)

for循环运行流程.JPG

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
希望对你有帮助

QQ截图20120729123403.png (8.36 KB, 下载次数: 29)

QQ截图20120729123403.png
回复 使用道具 举报
新人不容易啊,慢慢来,分析清楚就能懂了,刚刚画的图给你看看
希望能帮到你.....

for循环.png (29.54 KB, 下载次数: 30)

for循环.png

评分

参与人数 1技术分 +1 收起 理由
田向向 + 1

查看全部评分

回复 使用道具 举报
  1. for(int y = 4;y>2;y--)
  2. {
  3. System.out.println(x+" "+y);
  4. }
复制代码
因为内循环中,你又定义了一个新的变量int y = 4;
回复 使用道具 举报
仔细看一下毕老师打印99乘法表的视频你就会明白了
回复 使用道具 举报
因为内循环是随着外循环的循环而重新开始循环的,外循环的初始化表达式只执行一次,而内循环随着外循环执行多次。
回复 使用道具 举报
不明白,当y的循环结束了x=1的时候,开始第二个for循环的时候为什么又是从4开始的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马