哪位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(" ");
}
}
} 展开
{
for (int x = 0; x < 3;x ++)
{
for (int y = 0;y <= x; y ++)
{
System.out.print("*");
}
System.out.println(" ");
}
}
} 展开
2个回答
展开全部
打第一个 * 时, x=0,y=0 满足里面for的条件,y自增后跳出,所以打了一次。然后打一个空格并跳到下一行。
这样外层的for执行完成了第一次,x自增变成了1. 满足条件,进入都里面的for。但此时想变成了1. 当这个for开始运行时,y虽然依旧从0开始,但是判断条件编程了 <=1 所以执行了两次,因此 *输出了两次。
以此类推。。。
这样外层的for执行完成了第一次,x自增变成了1. 满足条件,进入都里面的for。但此时想变成了1. 当这个for开始运行时,y虽然依旧从0开始,但是判断条件编程了 <=1 所以执行了两次,因此 *输出了两次。
以此类推。。。
追问
谢谢大神,我就是想不明白第一次是一个第二次是两个到底是为什么,为什么不是从上到下一直都是一个那?
追答
我不是大神
因为第二个for的判断条件在变化
展开全部
因为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个*
}
以此类推
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询