哪位java大神可以给我解释一下为什么这个代码可以打出来。第一次一个乘号第二次两个乘号以此类推。

publicstaticvoidmain(String[]args){for(intx=0;x<3;x++){for(inty=0;y<=x;y++){System.ou... public static void main(String[] args)
{
for (int x = 0; x < 3;x ++)
{
for (int y = 0;y <= x; y ++)
{
System.out.print("*");
}
System.out.println(" ");
}
}
}
展开
 我来答
Roc大周
2015-08-21 · TA获得超过447个赞
知道小有建树答主
回答量:273
采纳率:50%
帮助的人:147万
展开全部
打第一个 * 时, x=0,y=0 满足里面for的条件,y自增后跳出,所以打了一次。然后打一个空格并跳到下一行。
这样外层的for执行完成了第一次,x自增变成了1. 满足条件,进入都里面的for。但此时想变成了1. 当这个for开始运行时,y虽然依旧从0开始,但是判断条件编程了 <=1 所以执行了两次,因此 *输出了两次。
以此类推。。。
追问
谢谢大神,我就是想不明白第一次是一个第二次是两个到底是为什么,为什么不是从上到下一直都是一个那?
追答
  1. 我不是大神

  2. 因为第二个for的判断条件在变化


soysource
2015-08-21 · TA获得超过400个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:294万
展开全部
因为x在外层循环做了自增运算,所以每次到内层循环的时候,都会多执行一次打印*
追问
这个我明白啊。
追答
第一次x=0,内层循环等价于:
for (int y = 0;y <= 0; y ++)
{
System.out.print("*"); // 打印一个*
}

第二次x=1,内层循环等价于:
for (int y = 0;y <= 1; y ++)
{
System.out.print("*"); // 循环两次,打印2个*
}

以此类推
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式