一、代码
package base;
public class TriangleTower
{
public static void main(String[] args)
{
int n=5;
for(int i=1;i<=n;i++)
{
for(int j=0;j<n-i;j++)
{
System.out.print(" ");
}
for(int k=0;k<2*i-1;k++)
{
System.out.print("*");
}
System.out.println();
}
}
}
二、可视化
三、理解
从上往下依次执行,先定义整个塔有几行,按照行来执行每行的空白和星号,当每行中的星号执行完以后就开始换行,每次for可以看作是一个崭新的数组,跳出一个for循环,然后再执行接下来的for循环。
以总共有5行为例,i从5开始一直执行到5。
- 当i=1也就是开始操作第一行的时候;首先执行第一个for循环,一开始j=0,每执行一次,j就累加一次,每次的内容都是空白,从0一直到3总共执行了4次;然后执行接下来的for循环,k从0开始执行,就执行一次,每次有1个星号。
- 当i=2的时候,执行第2行的内容;j从0开始累加到2,执行了3次,每次都是空白;然后执行接下来的for循环,k从0开始依次累加到2,执行了3次,每次有3个星号。
- 当i=3的时候,开始操作第3行;j从0累加到1,执行了两次,每次都是空白;然后执行接下来的for循环,k从0开始一直累加到4,执行了5次,每次都有5个星号。
- 当i=4的时候,开始操作第4行的内容;当进行第一次for循环的时候,j=0执行一次,留下一个空白;然后然后开始执行第2次循环,k从0一直累加到6,执行了7次,留下了7个星号。
- 当i=5的时候,开始操作第5行的内容;当i=0的时候,不执行第1次循环,直接跳出第一次循环;然后执行第2次循环,k从0累加到9执行了9次,留下了9个星号。