![d4dd391b131cb1f2148685e3aed9314d.png](https://i-blog.csdnimg.cn/blog_migrate/bb0772da0ce4d5d2b058d2c616313745.jpeg)
原理才是精髓所在,前文所言:
嵌套循坏需要理解的就是,外for循坏一次,需要在内for循环结束后执行,至于后面这个for执行了多少次,毫不关心。
外循环执行m次,内循环执行n次,则时间复杂度为O(m*n)
一般外循环无须动,技巧:
1. 通过改变布尔表达式来改变每行输出 * 的数量
2. 改变输出内容的格式
3. 标准四边形可以通过两个不同输出的形状进行叠加
一、打印长方形
public class Demo01ArrayIndex {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {//控制行数,这里执行一次,下面执行j<5(五次)
for (int j = 0; j < 5; j++) {//控制列数,上面执行一次,此处执行j<5
System.out.print("*");
}
System.out.println("");//小技巧,外循环执行一次,直接不打印进行换行
}
}
}
![1e9887c3ac6f78dafffe365a4a2ae5d6.png](https://i-blog.csdnimg.cn/blog_migrate/a2671a935bc1bb61f5f2c83614bf2c62.png)
二、打印直立直角三角形
public class Demo01ArrayIndex {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i+1; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
![4509851a1a0a307ba85bdabbeabb5afa.png](https://i-blog.csdnimg.cn/blog_migrate/6ba00b085f66daf4ea675c75f2e68816.png)
三、打印倒立直角三角形
public class Demo01ArrayIndex {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5-i; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
![e0e2a61da2c6a20818fc1cf5e9b5f5af.png](https://i-blog.csdnimg.cn/blog_migrate/ebb10b2e8ff935107c86a100e0de3e1c.png)
四、打印向左三角形(直立倒立直角三角形结合体)
public class Demo01ArrayIndex {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println("");
}
for (int k = 0; k < 6; k++) {
for (int m = 0; m < 6 - k; m++) {
System.out.print("*");
}
System.out.println("");
}
}
}
![0973f497177bf441a03c73e73f854349.png](https://i-blog.csdnimg.cn/blog_migrate/d31f659ddc1608678948f32daec7a3f1.png)
五、打印等腰三角形
六、打印菱形(两个三角形叠加)
七、打印空心菱形
八、打印心型