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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范泰洋 高级黑马   /  2012-7-12 19:33  /  2128 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Demo
{
        public static void main(String []args)
        {
                int i = 0, j = 5;
                tp: for (;;)
                {
                        i++;
                        for(;;)
                        {
                                if(i > j--)
                                        break tp;
                        }
                }
        System.out.println("i = " + i + ", j = "+ j);
        }
}                
写出结果。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

5 个回复

倒序浏览
i=1,j=4对不对?
回复 使用道具 举报
高宜 发表于 2012-7-12 19:58
i=1,j=4对不对?

顺便问句 break出的来循环吗
回复 使用道具 举报
i=1,j=-1        public class Demo
{
        public static void main(String []args)
         {
                int i = 0, j = 5;
                tp: for (;;)
                 {
                        i++; //i=1,不参与下面的循环
                        for(;;)
                         {
                                 if(i > j--)  //当j--小于i时 循环结束   i=0 ,输出为-1
                                         break tp;
                        }
                 }
        System.out.println("i = " + i + ", j = "+ j);
        }
}                 

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
程序思想:是for循环嵌套的,
第一步:首先i=0 进入外for循环 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 5;条件判断(判断为真);)继续执行 判断if(i>j--) i=1 j=5 为false break 跳到外循环,

第二步: 继续执行外for循环i被初始话0  继续执行 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 4;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=4(上一圈 j-- 所以为4)  这次判断的是1>4吗为false break 跳到外循环,继续执行外循环

第三步继续执行外for循环i被初始话0  继续执行 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 3;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=3(上一圈 j-- 所以为3)  这次判断的是1>3吗为false break 跳到外循环,继续执行外循环

第四步:继续执行外for循环i被初始话0  继续执行 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 2;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=2(上一圈 j-- 所以为2)  这次判断的是1>2吗为false break 跳到外循环,继续执行外循环

第五步继续执行外for循环i被初始话0  继续执行 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 1;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=1(上一圈 j-- 所以为1)  这次判断的是1>1吗为false break 跳到外循环,继续执行外循环
关键在于第六部:
第六部:继续执行外for循环i被初始话0  继续执行 循环第一句判断for(  i=0;条件判断(判断为真)  ; ) 继续执行 i++  执行内循环。
for(j= 0;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=0(上一圈 j-- 所以为0)  这次判断的是1>0  y-- 为 -1吗为true break 跳出循环体,

输出结果是x=1 y=-1

public class Demo
{
        public static void main(String []args)
         {
                int i = 0, j = 5;
                tp: for (;;)
                 {
                        i++;
                        for(;;)
                         {
                                 if(i > j--)
                                         break tp;
                        }
                 }
        System.out.println("i = " + i + ", j = "+ j); 输出结果 x=1 y=-1
        }
}                 输出结果是1和-1

程序的过程:

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
package cn.itcast;

public class Demo
{
        public static void main(String []args)
        {
                int i = 0, j = 5;
                tp: for (;;)
                {
                        i++;
                        for(;;)
                        {
                                if(i > j--)
                                        break tp;
                        }
                }
        System.out.println("i = " + i + ", j = "+ j);
        }
}                 

i=1   j=-1;
只有i大于jbreak才能停止;
i++;说加加为1;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马