如何使用JAVA打印菱形(三)空心菱形基础上加上对角线

当掌握了我之前文章的前两种菱形的打印方法后,是否会感觉到so easy。那么我们加大难度,在空心菱形的基础上,再打印出一个“十字”,也就是把空心菱形的对角线打满星星。

具体代码如下:

public class HollowDiamondPlus {
public static void main(String[] args) {
/*
* 说过说在我前面讲了的两中菱形都掌握了的话,那么我认为加一个难度的话,就是在空心菱形里加一个十字
* 这个加十字的方法其实有很多,我在这里主要介绍一下我的方法。
* 在第n行的时候(也就是你一开始输入的那个数即菱形的边长),是一排星号打印过去的。
* 在除了行数等于边长的那一行外,在每行需要打印星星的代码出开始,
*  第一个地方,末尾那个地方,以及行数的地方都要打印星星。
* 其余的地方就只好依然是打印一个空格了。
*/
Scanner input = new Scanner(System.in);
boolean boo = true;
do {
System.out.println("请输入一个数");


int n = input.nextInt();
// 上半部分
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}


if (i == n) {// 第n行打满星星的地方
for (int k = 1; k < 2 * n; k++) {


System.out.print("*");


}
} else {// 非n行打印星星的地方
for (int j = 1; j <= (2 * i - 1); j++) {


if (j == 1 || j == (2 * i - 1) || j == i) {
System.out.print("*");
} else {
System.out.print(" ");
}


}


}
System.out.println();
}
// 下半部分


for (int i = n - 1; i > 0; i--) {


for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}


// 非n行打印星星的地方
for (int j = 1; j <= (2 * i - 1); j++) {


if (j == 1 || j == (2 * i - 1) || j == i) {
System.out.print("*");
} else {
System.out.print(" ");
}


}


System.out.println();
}


System.out.println("要继续么?(Y/N)");
String str = input.next();
if (str.equals("Y")) {
boo = true;
} else {
boo = false;
}
} while (boo);


System.out.println("程序结束!!!");
}
}


打印出的结果如下,看起来对角线貌似密了一些,如果让对角线每隔一个空格打印一个星星呢?这样看起来会舒服一些,具体代码见下一个同系列的文章。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值