黑马程序员技术交流社区

标题: 一段小代码练习 有一个地方不是很明白 求解 有图 有代码 [打印本页]

作者: wxw19910324    时间: 2016-1-4 16:08
标题: 一段小代码练习 有一个地方不是很明白 求解 有图 有代码
class ArrayTest
{               
        public static void main(String[] args)
        {
                               

               for (int x=0; x<5; x++)
               {
                                   for (int y=x; y<5; y++)
                                   {
                                           System.out.print("-");
                                   }

                                   for (int z=0; z<=x; z++)
                                   {
                                           System.out.print("* ");
                                   }
                                        System.out.println(); //这个位置为什么一定要输出这个代码 才能打印出自己想要的结果
                                  
               }  
                          
        }
}



写了 这个代码以后  System.out.println();



作者: yi651312197    时间: 2016-1-4 16:28
那个带了“ln”是换行的意思,因为前面的没换行。
作者: 黑色皮肤的马    时间: 2016-1-4 16:41
首先,这是个for循环的潜逃。外循环控制行,内循环控制列的。你的代码中的内循环也是两个for循环组成的。举例:当x=0时,进入到内循环中后,先执行第一个for循环,判断0<5,然后输出了一个-,再继续循环,总共输出了5个-。这样内循环的第一个for循环就结束了,但是内循环还有第二个for循环。继续执行。z=0,0<=1,所以输出一个* ,然后z变成1,1<=1,又输出了一个* 。到此为止,第一次内循环才真正的结束。紧接着执行System.out.println();这句代码是换行的意思。因为一次完整的内循环已经结束了,紧接着要进行下一次循环了,这时候加个换行,才能输出那种倒三角或者正三角的形状,不加这行代码的话,那么输出的所有-和*都将打印在一行中。
作者: 黑色皮肤的马    时间: 2016-1-4 16:47
Sorry,刚才手误,打了一个小错误。对于x=0,第一次内循环中的第二个for循环,z=0,z<=0,所以输出一次*,然后z变成1,1不小于等于0,所以只输出一个*,至此第一次内循环才结束,然后就是刚才后面的解释了。不好意思了。
作者: shenfuhan    时间: 2016-1-4 18:33
打印一个菱形的代码怎么写
作者: 549208564    时间: 2016-1-5 13:43
转行作用,如果不换行就打印在一行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2