使用for循环打印空心菱形图案
使用for循环打印空心菱形图案
打印空心菱形图案
例: 首先我们要知道:
1.外层循环控制的是图形的行数;
2.内层循环控制的是图形的列数。
看菱形图案的左侧有空白区域,这就造成了我们很难理解,空白区域该怎么弄,
才能打印出来呢?
很简单,把空白区域填充上一个个的字符,***把字符当成空白***,这样就好理解了!
如下图:
看懂上一步后,那我们就开始找规律了。
这里先告诉大家可以使用一元一次线性方程求解!
我们先看上半部分:
为了便于计算,我们把菱形内部“ * ”也填充上。
紧接着计算 “ * ” 号
如下图:
最后如何去控制空心呢?**
我们可以在打印 “ * ”的时候去控制它
第一个与最后一个打印“ * ”号;
其他打印空白即可。
下列代码演示:
if(j==1 || j==(2*i-1)) {
System.out.print("*");
}else {
System.out.print(" "); //字符串里面是一个空格!
}
接下来是完整的代码了!
最好是 从1开始循环,不然从0开始你可能会晕的哦!
先打印上半部分后打印下半部分,空白在每行前面,所以开始打印空白,后打印“ * ”号。
空白与*都是控制列数,并列for循环即可!
//上半部分
for(int i= 1;i<=4;i++) { //外层循环控制行数
//线性求解即可!
//打印空白
for(int j=1;j<=4-i;j++) { //内层循环控制列数
System.out.print(" "); //空白
}
//打印“ * ”
for(int j=1;j<=2*i-1;j++) { //内层循环控制列数
if(j==1 || j==(2*i-1)) { //控制内部空白区域
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
//打印下半部分
for(int i=1;i<=3;i++) {
for(int j=1;j<=i;j++) {
System.out.print(" ");
}
for(int j=1;j<=-2*i+7;j++) {
if(j==1 || j==-2*i+7) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
编程界小明哥: 学到了,顶一波~欢迎回访一起交流!
不正经的kimol君: 在最美的年华,做最好的自己,加油!
不正经的kimol君: 大佬的文章让我受益匪浅,如痴如醉,以后的日子还希望能够得到大佬的谆谆指点!