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

使用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 }

代码结果显示:

时间: 2024-10-09 12:38:31

for循环输出空心菱形的形状【java】的相关文章

for循环打印空心菱形的新方法

相信大家在学习流程控制的循环结构时,一定都用for循环绘制过菱形和空心菱形吧,我记得我当时写的很麻烦,把一个菱形分为上下两部分,上面2重for循环,下面2重for循环,相信有很多的小伙伴都是这样做的吧,但是这样也造成了很多的代码冗余,今天无意间看到另外一种简便的方法,具体思路和实现过程如下图所示: 思路:   1.先画一个正方形,边长为奇数. 2.定义每一行的初始位置和结束位置,初始值为:边长/2+1. 3. 在每一行的输出位置和结束位置打印*,即为最中间的一条竖线. 4.改变初始位置和结束位置

Java循环输出一个菱形与阶乘倒数

package javafirst; public class HomeWork { public static void main(String[] args){ System.out.println("输出一个菱形!"); for(int i = 0; i < 5; i ++){ for(int j = 5; j > i + 1; j--){ System.out.print(" "); } for(int k = 0; k < 2*i + 1

PHP练习--用for循环打印空心菱形

思路:1,写出代码打印实心的金字塔 2.修改代码,把金字塔抛空 3.修改代码,把金字塔倒转 4.修改倒转后的代码,把金字塔抛空 5.修改代码,把具体的数进行参数化 1.写出代码打印实心金字的金字塔: <?php //$n=5; for($i=1;$i<=5;$i++){ //打印空格 for($j=1;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ echo "*";

使用for循环打印矩形和三角形、菱形、空心菱形

打印矩形 **************************************************************************************************** public class Demo3_712 { public static void main(String args[]){ for(int i=1;i<=10;i++){ //控制行 for(int j=1;j<=10;j++){ //控制列 System.out.print(&

C语言---打印空心菱形

首先找出上尖三角形的空格和*之间的规律,利用for循环的嵌套来输出上尖三角形,if是用来判断是否输出到最后一个*号,如果是就换行. int n = 4; for(int i = 1 ; i <= n ; i++){ for(int j = n - i ; j > 0 ; j-- ){ // n - 1 为每一行需要输出的空格数量 printf(" "); } for(int x = 1 ; x <= 1+(2*(i-1)) ; x++) //1+(2*(i-1)) 为

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

使用for循环语句输出以下"菱形"效果: * *** ***** ******* ********* ******* ***** *** * 代码 1 /* 2 * 3 *** 4 ***** 5 ******* 6 ********* 7 ******* 8 ***** 9 *** 10 * 11 12 分析: 13 - 上层(共5层) 14 每层构成:每层每层空格数+每层星星数 15 第1层 -- 空格数:4 + 星星数:1 16 第2层 -- 空格数:3 + 星星数:3 17 第

【黑马程序员】-Java基础学习-输出一个空心菱形

1 package test; 2 3 /** 4 * 内容是输出一个空心菱形 5 * @author 瞎猫碰到死老虎 6 * 7 */ 8 9 public class linXing { 10 11 public static void main(String[] args) { 12 int n=15; 13 lingxing(n); 14 15 } 16 17 //输出一个n行的菱形 18 public static void lingxing(int n){ 19 //先输出上半部分

java杨辉三角和空心菱形(二维数组篇)

一.杨辉三角 1 import java.util.Scanner; //导入包 2 public class Test7 { 3 public static void main(String[]args){ 4 5 Scanner row=new Scanner(System.in); //调用扫描器 6 int n = row.nextInt(); //定义类型 7 int [][] a=new int[n][n]; //定义二位数组 8 int i,j; //声明整型 9 10 for(i

【趣题】用for循环输出菱形

用for循环输出如上图所示的菱形 思路: 我们以17为例 首先,输出一列九行的星号,这是最熟悉的逐行输出 public class test{ public static void main(String[] args) { int linesum = 17;//菱形的最大行数,输入一个 奇数 for (int i=1; i<=linesum; i++){//i为当前所在行 System.out.println("*"); } } } 分析一下菱形 红线以上的部分星号是递增的,红