关于java循环嵌套问题

classshuzisanjiao{publicstaticvoidmain(String[]args){for(intx=1;x<=5;x++){for(inty=1;... class shuzisanjiao{
public static void main(String[] args) {
for(int x=1;x<=5;x++){
for(int y=1;y<=x;y++){
System.out.print(x);
}
System.out.println();
}
}
}
以上的最终目的是打印
1
12
123
1234
12345
我想知道每一步的原理是什么?谢谢!
展开
 我来答
张三猫子
2014-04-16 · TA获得超过689个赞
知道小有建树答主
回答量:247
采纳率:100%
帮助的人:128万
展开全部
for(int x=1;x<=5;x++){
//第一个for循环第一次循环x=1,x<5等价(1<5);
//第二个for循环第一次循环j=1,j<=x等价(1<=1)(满足打印1)然后j++:此时j=2
//第二个for循环第一次循环j=2,j<=x等价(2<=1)(不满足不打印)然后第二个循环结束了。x++此时x=2

//第一个for循环第2次循环x=2,x<5等价(2<5);
//第二个for循环第1次循环j=1,j<=2等价(1<=2)(满足打印1)然后j++:此时j=2
//第二个for循环第2次循环j=2,j<=x等价(2<=2)(满足打印2)然后j++:此时j=3第二个循环结束了。
//第二个for循环第3次循环j=3,j<=x等价(3<=2)(不满足不打印)然后第二个循环结束了。x++此时x=3
//以此类推,
for(int y=1;y<=x;y++){
System.out.print(x);
}
System.out.println();
}

纯手工,好累
百度网友e85abfb
2014-04-16 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:74.1万
展开全部
双重循环,
当X=1, Y=1,y<=x成立,输出1(不换行),
Y=2,y<=x不成立,跳出Y层的循环,运行println(),会换行,
当X=2, Y=1,y<=x成立,输出1(不换行),
Y=2,y<=x成立,输出2(不换行),此时控制台可以看到12
。。。。。
。。。。。
以上就是这样的逻辑。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhushuang781
2014-04-16 · TA获得超过329个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:73.6万
展开全部
class  shuzisanjiao{//定义一个java类
         public static void main(String[] args) {//静态main函数作为入口
                       for(int x=1;x<=5;x++){//循环,定义临时整型变量x赋值为1
                           for(int y=1;y<=x;y++){//循环,定义临时整型变量y赋值为1
                                System.out.print(x);//打印出x的值
                               }
                     System.out.println();//打印回车
                    }
        }
}

外面的for是x从1到5循环5次,即里面的for会执行5次,里面的for执行完会打印回车,

所以每次执行完内部的for就会打印回车

里面的for是y从1到x,即x为多少,内部for里面就会执行多少次

内部的for每执行一次就会打印x值


关键就是内部的for循环次数是根据x的值来确定的,而每次执行到内部的for的时候x都会加1,所以结果就会变成每一层多出一个数字

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有你何来明天1u
2014-04-16 · 超过15用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:32万
展开全部
x=1
x<=5 true
y=1
y<=1 true
print(x=1)
y=y+1=2
y<=2 false
x=x+1=2;

x=2
x<=5 true
y=1........
for(initialization; test; increment)
initialization
必选项。一个表达式。该表达式只在执行循环前被执行一次。
test
必选项。一个 Boolean表达式。如果 test 是 true,则 statement 被执行。如果 test 是 false,则循环结束。
increment
可选项。一个表达式。在每次经过循环的最后执行该递增(减)表达式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingpiaoyao
2014-04-16 · TA获得超过141个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:223万
展开全部
循环就是依据一定的条件,重复执行循环体;
当x=1时,y<=x,则y=1
x=2时,y取1,2
。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友84ef749b56
2014-04-16 · TA获得超过291个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:206万
展开全部
貌似你的代码无法打印你想要的哦,
应该讲System.out.print(x);改为System.out.print(y);才可以。

第一个for控制了打印几行,第二个for控制每行打印的内容。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一直在大学流浪
2014-04-16
知道答主
回答量:11
采纳率:0%
帮助的人:4.1万
展开全部
shuzisanjiao 类{
main方法{for(x从1到5循环){for(当x=1时,y=1){
输出1}换行}}
当x=2时,y=1,2,输出两个2,然后换行依此类推直到x=6跳出循环,你要达到你要的结果需要将第二个循环中的x改成y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式