循环_高阶——打印镂空的菱形图形

/* ------模拟下图,打印一个7层镂空的菱形图形(必须为奇数层)如下图:
*
* *
* *
* *
* *
* *
*
------注意,通不要能过中间镂空的空格数规律来建立循环输出,这过于繁琐且易出错*/
public class L{
public static void main(String[] args){
int lay = 7; //层数,修改lay自由控制层数(此图形必须为奇数行)
int up = lay/2+1; //上半层
int low = lay-up; //下半层
for(int i=1; i<=up; i++){ //确定图形上半截行数;
for(int j=1; j<=up-i; j++)
System.out.print(" "); //按规律打印空格

//打印上半部分*号及其内部镂空的空格

for(int k=1; k<=(i-1)*2+1; k++){ //注意k的取值范围,上半行每行*号+空格的数量每行+=2;(与下半截相反)
if(i==1){ //判断是否为顶层
System.out.print("*"); //如果是,输出唯一一个*号
}
else{
//判断是否为中间各层的第一个或最后一个*号(中间层只有两个*号)
if(k==1 || k==(i-1)*2+1)
System.out.print("*");
else
System.out.print(" ");
}
}
System.out.println(); //每打印完一行后换行
}
//打印下半部分*号及其内部镂空的空格
for(int i=1; i<=low; i++){ //确定下半行数
for(int j=1; j<=i; j++)
System.out.print(" ");
for(int k=1; k<=(low-i)*2+1; k++){ //k的取值范围是重点,下半行每行*号+空格的数量每行-=2;
if(i==low){ //图形下半截最后一行
System.out.print("*");
break; //当达到最后一行时,输出最后一个空格终止该层循环(此后最外层循环也达到跳出条件)
}
else{
if(k==1 || k==(low-i)*2+1)
System.out.print("*");
else
System.out.print(" ");
}
}
System.out.println(); //每打印完一行后换行
}

}
}
/*----------------
*
* *
* *
* *
* *
* *
*
----------------*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值