菜鸟教程 -- 学的不仅是技术,更是梦想!

Java 教程
(追記) (追記ここまで)

Java 实例 – 打印菱形

Java 实例 Java 实例

输出指定行数的菱形。

实例

publicclassDiamond{publicstaticvoidmain(String[]args){print(8); // 输出 8 行的菱形}publicstaticvoidprint(intsize){if(size % 2 == 0){size++; // 计算菱形大小}for(inti = 0; i < size / 2 + 1; i++){for(intj = size / 2 + 1; j > i + 1; j--){System.out.print(""); // 输出左上角位置的空白}for(intj = 0; j < 2 * i + 1; j++){System.out.print("*"); // 输出菱形上半部边缘}System.out.println(); // 换行}for(inti = size / 2 + 1; i < size; i++){for(intj = 0; j < i - size / 2; j++){System.out.print(""); // 输出菱形左下角空白}for(intj = 0; j < 2 * size - 1 - 2 * i; j++){System.out.print("*"); // 输出菱形下半部边缘}System.out.println(); // 换行}}}

输出结果:

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

Java 实例 Java 实例

AI 思考中...

1 篇笔记 写笔记

  1. #0

    头条号[IT荠荠菜]

    qux***[email protected]

    19

    1、另一种实现思路:利用菱形的对称,编写代码,如下所示:

    public class DiamondSymmetry { 
     public static void main(String[] args) { 
     print(8);// 输出 8 行的菱形 
     } 
     public static void print(int size) { 
     if (size % 2 == 0) { 
     size++;// 计算菱形大小 
     }
     //第一个和第二个for 循环中的代码一样。 
     for (int i = 0; i < size / 2 + 1; i++) { 
     for (int j = 0; j < (size / 2) - i; j++) { 
     System.out.print(" ");// 输出左上角位置的空白 
     } 
     for (int j = 0; j < 2 * i + 1; j++) { 
     System.out.print("*");// 输出菱形上左半部边缘 
     } 
     System.out.println(); 
     } 
     for (int i = size / 2 - 1; i >= 0; i--) { 
     for (int j = 0; j < (size / 2) - i; j++) { 
     System.out.print(" ");// 输出菱形左下角空白 
     } 
     for (int j = 0; j < 2 * i + 1; j++) { 
     System.out.print("*");// 输出菱形下半部边缘 
     } 
     System.out.println(); 
     } 
     }
    }

    2、代码抽取:抽取重复的代码片段到方法 printLint(...) 中,如下所示:

    public class DiamondSymmetry2 { 
     public static void main(String[] args) { 
     print(8);// 输出 8 行的菱形 
     } 
     public static void print(int size) { 
     if (size % 2 == 0) { 
     size++;// 计算菱形大小 
     } 
     //第一个和第二个for 循环中的代码一样。 
     for (int i = 0; i < size / 2 + 1; i++) { 
     printLine(size, i); 
     } 
     for (int i = size / 2 - 1; i >= 0; i--) { 
     printLine(size, i); 
     } 
     } 
     public static void printLine(int size, int i) { 
     for (int j = 0; j < (size / 2) - i; j++) { 
     System.out.print(" ");// 输出菱形左下角空白 
     } 
     for (int j = 0; j < 2 * i + 1; j++) { 
     System.out.print("*");// 输出菱形下半部边缘 
     } 
     System.out.println(); 
     }
    }

    头条号[IT荠荠菜]

    qux***[email protected]

    7年前 (2019年12月16日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /