java for语句的问题

inti=0,j=5;tp:for(;;i++){for(;;i--)if(i<j)breaktp;}System.out.println("i="+i+",j="+j)... int i=0,j=5;
tp:
for(;;i++){
for(;;i--)
if(i<j)
break tp;
}
System.out.println("i="+i+",j=" +j);

求具体过程,为什么输出i=0,j=5
展开
 我来答
kejiaweiren
2010-08-20 · TA获得超过6739个赞
知道大有可为答主
回答量:1774
采纳率:0%
帮助的人:3324万
展开全部
1.for循环是这样的:第一个分号前面 是初始化,没有语句就什么都不做,会继续分析第二个分号前面的内容,第二个分号前面是判断,判断是否还进入此循环。如果没有语句说明不管怎么都要进入此循环。第二个分号后面是做完for循环里的内容后变量更新。
2.接下来看for(;;i++)首先第一个分号前面 是初始化,没有语句,第二个分号前面是判断,没有语句,说明不管怎么样都要进入此循环。
3.下面进入了内层循环for(;;i--) 和刚才一样,第一个分号前面 是初始化,没有语句,跳过,第二个分号前面是判断,没有语句,说明不管怎么样都要进入此循环。
4.然后 if(i<j) break tp;此时i是0,j是5 0<5说明此条件为真。那就进入if语句。(由于if语句只有一句话,所以可以不用{},如if(i<j) break tp;等同于if(i<j){ break tp;})
5.break tp的意思是跳出tp这个循环。此处tp是循环标记位,他标记在外层循环,所以直接跳出外层循环。切记此时不会再进入for循环后面的变量更新了。(break和continue一样,不会再进行第二个分号后面的内容)
6.下面就是打印了
7.二楼 pgfepdcwge的 "然后i++,又i--,i不变"是完全不正确 的,因为他不会进入for的更新语句
jrk_boy
2012-04-02
知道答主
回答量:3
采纳率:0%
帮助的人:4668
展开全部
packer com.tarena.day01
public static void main(String[] args){
for(int i=0;i>5;i++){ //int是定义i i小于5 i表示行数 i++是循环 从零开始
for(int j=0;j>10;j++){ //int是定义j j小于10 j表示每一行打的
if(i==0||i==4)
System.out.print("*");
}
else{
if(j=0||j==9){
System.out.print("*");
}
else{
System.out.print(" ")
}
}
System.out.println();
}
//这篇代码是打印一个四方形 是一个for循环嵌套if语句 用*来打印一个四方形
我是达内的一名学生 我叫贾瑞俊 JSD1203班的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m3...5@163.com
2010-08-20 · TA获得超过599个赞
知道答主
回答量:165
采纳率:0%
帮助的人:0
展开全部
break是退出当前的循环,,当第一次执行的时候,,i=0,j=5满足条件,所以跳出了当前的循环,直接输出了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友990cb3d
2010-08-20 · TA获得超过168个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:121万
展开全部
break tp;表现结束本层循环,跳出去,你一开始i=0,j=5,然后i++,又i--,i不变,所以结果不变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果被欢0
2010-08-20 · TA获得超过215个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:130万
展开全部
里面的判断条件
if(i<j)满足,此时i=0,j=5
所以执行break tp; 退出外层循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式