如何使用JAVA打印菱形(四)对于空心菱形外加对角线的美化

继上一次打印结果发现不太美观的情况下,我们把对角线上的星星每隔空格打印一个星星让其美观一下。没有什么是我们程序员办不到的。

代码如下:

import java.util.Scanner;


public class HollowDiamondPlusPlus {
public static void main(String[] args){
/*
* 关于如何将十字线也就是我们的对角戏每隔一个空格打印一个星星,首先在最特殊的横向的对角线上,
* 我们让奇数的时候打印一个星星,偶数的时候打印空格。
* 然后在行的话,在奇数行我们打印星星,偶数行我们不打印空格
* 具体实现见代码
*/
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){
for(int k=1;k<2*n;k++){

if(k%2==1){
System.out.print("*");
}else{
System.out.print(" ");
}


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

if(i%2==1){//如果行数等于奇数的话,则原样不动
if(j==1||j==(2*i-1)||j==i){
System.out.print("*");
}else{
System.out.print(" ");
}
}else{//如果行数等于偶数的话,则只把之前在中间的那个星星就不打印了
if(j==1||j==(2*i-1)){
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(" ");
}
for(int j=1;j<=(2*i-1);j++){
if(i%2==1){
if(j==1||j==(2*i-1)||j==i){
System.out.print("*");
}else{
System.out.print(" ");
}
}else{
if(j==1||j==(2*i-1)){
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("程序结束!!!");
}
}
最后的执行结果确实比之前看起来要舒服多了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值