Java打印一个空心菱形

空心,也就是说,除了第一行和最后一行,其余的行都只打印两个*,在什么地方打印*?

毫无疑问,这需要计算,每一行在什么地方打印*,跟这是第几行密切相关

另外,打印菱形,可以看作是先打印一个正三角形,再打印一个倒三角形

 

public class Diamond {

 public static void main(String[] args){
  for(int i=1; i<=7; i++){       //一共7行
   if(i<=3) {             //在1-3行打印正三角形
    for(int j=1; j<=7; j++){     //每行7列
     if(j==i+3||j==5-i){       //在i+3和5-i两个地方打印*,第一行这两者相等,所以只打印一个*
      System.out.print("*");
     } 
     else{
      System.out.print(" ");
     }
    }
   } 
   else{
    for(int k=1; k<=7; k++){     //在4-7行打印倒三角形
     if(k==i-3||k==11-i){      //在i-3和11-i两个地方打印*,最后一行这两者相等,所以只打印一个*
      System.out.print("*");
      } 
     else{
      System.out.print(" ");
     }
     }
    }
  System.out.println();
  }
  }
 }

 

打印空心图形,可以通过循环+条件来控制,但是条件怎么得到?

由第几行和这行的*在第几个位置计算得到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值