免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1898 | 回复: 0
打印 上一主题 下一主题

关于break 和continue 的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-24 22:19 |只看该作者 |倒序浏览
public class Mark
{
        public static void main(String argv[])
        {
                int i,j;
                Loop1:
                for (i=1;i<=5;i++)                                                                                                                                      
                {
                        Loop2:
                        for (j=1;j<=5;j++)
                        {
                                if (j == 3)
                                        break Loop2;
                                       
                                if (i == j)
                                        continue Loop1;
                                       
                                System.out.println(i+"*"+j+"="+i*j);
                        }
                }
        }
}       


这个程序的结果为 在屏幕打印出:
2*1=2
3*1=3
3*2=6
4*1=4
4*2=8
5*1=5
5*2=10

在这个程序里面我有几点不太明白,就是程序的一个流程。

首先,让i和j都等于1的时候 将返回loop1 ,此时i++ 为2 ,那j做不做j++呢?
第二个问题。如果i=j以后,是继续执行loop2里面的循环。还是 loop1和loop2同时执行呢。
第三个问题。当i=4,j=3的时候,如果在往下继续执行程序。那j将会变为初始值1,但是那样的话。就永远也执行不了j=i的语句了啊。这个地方程序是怎么处理的呢。是不是虽然
j=3了。执行了break loop2了,但是j仍然是执行自增的。只不过不执行println这个语句呢。

我问的这些问题可能很难用语言表达清楚。如果高手能帮我把这个程序的流程仔细点讲解一下,不胜感激。到底这个程序是怎么循环的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP