for循环输出空心菱形的形状【java】

本文介绍如何使用Java编程语言中的for循环来绘制一个空心的菱形图案。通过控制空格和星号的输出数量,实现了菱形的上半部分和下半部分的绘制。该教程适合初学者理解循环和条件判断的用法。

使用for循环语句输出以下“空心菱形”效果:

    *
   * *
  *   *
 *     *
*       *
 *     * 
  *   *
   * *
    *

 建议优先参考笔者的另一篇文章:《for循环输出菱形的形状【java】》

代码:

 1 /*
 2     *
 3    * *
 4   *   *
 5  *     *
 6 *       *
 7  *     * 
 8   *   *
 9    * *
10     *
11 
12 分析:
13 上图形似于实心菱形
14     *
15    ***
16   *****
17  *******
18 *********
19  ******* 
20   *****
21    ***
22     *
23 
24     在菱形图案基础之上,将每行的第一颗和最后一颗星星输出,其他星星使用空格输出即可。
25 */
26 
27 
28 public class StarTree
29 {
30     public static void main(String[] args){
31         int layer = 5;
32 
33         // 一、上层(显示 layer 行)
34         for(int i=1;i<=layer;i++){
35              
36             // 1、获取空格需要显示数量
37             int spaceNum = layer-i; 
38 
39             for(int j=1;j<=spaceNum;j++){  // 需要打印空格的数量
40                 System.out.print(" ");
41             }
42             
43             // 2、获取星星需要显示的数量
44             int starNum = 2*i-1;
45 
46             for(int j=1;j<=starNum;j++){ // 需要每行打印的数量
47                 if(j==1||j==starNum){    // 每行第一颗和最后一颗星星打印
48                     System.out.print("*");
49                 }else{                   // 每行非第一颗和非最后一颗星星打印成空格
50                     System.out.print(" ");
51                 }
52             }
53             // 3、换行
54             System.out.println();
55         }
56         
57         // 二、下层
58         for(int i=(layer-1);i>=1;i--){
59 
60             int sapceNum = layer-i;      // 获取到每行显示空格的数量与行数i之间的关系
61             for(int j=1;j<=sapceNum;j++){
62                 System.out.print(" ");
63             }
64 
65             int starNum = 2*i-1;         // 获取到每行显示星星的数量与行数i之间的关系
66             for(int j=1;j<=starNum;j++){
67                 if(j==1||j==starNum){    // 每行第一颗和最后一颗星星打印
68                     System.out.print("*");
69                 }else{                   // 每行非第一颗和非最后一颗星星打印成空格
70                     System.out.print(" ");
71                 }
72             }
73             System.out.println();
74         }
75     }
76 }

  代码结果显示:

 

 

转载于:https://www.cnblogs.com/mujingyu/p/7289989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值