📜  打印菱形星形图案的Java程序

📅  最后修改于: 2022-05-13 01:54:32.706000             🧑  作者: Mango

打印菱形星形图案的Java程序

在本文中,我们将学习如何在Java打印菱形星形图案。

插图:

Input: number = 7
 
Output:

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

方法:当涉及到图案印刷时,我们确实选择了仅通过循环进行印刷的标准方式。我们将尝试不同类型的循环来打印相同的图案。

示例 1:使用 do-while 循环

Java
// Java program to Print Diamond Star Pattern
// Using do-while loop
  
// Importing input output classes
import java.io.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing variables
  
        // Variable initialized to the row where max star
        // should be there as after that they decreases to
        // give diamond pattern
        int number = 7;
  
        // Diamond starting with single star in first row,so
        // initialized
        int m = 1;
  
        // Columnar printing
        int n;
  
        // Outer loop 1
        // Prints the first half diamond
        do {
            n = 1;
  
            // Inner loop 1
            // Prints space until ++n <= number - m + 1 is
            // false
            do {
                // Print whitespace between
                System.out.print(" ");
  
            }
  
            // Condition for inside do-while loop 1
            while (++n <= number - m + 1);
  
            // Now
            n = 1;
  
            // Inner loop 2
            // Prints star until ++n <= m * 2 - 1 is false
  
            do {
  
                // Print star
                System.out.print("*");
            }
  
            // Condition for iner do-while loop 2
            while (++n <= m * 2 - 1);
  
            // A new row requires a new line
            System.out.println();
  
        }
  
        // Condition for outer do-while loop 1
        while (++m <= number);
  
        // Now we are done with printing the upper half
        // diamond.
  
        // Note: Not to print the bottom row again in lower
        // half diamond printing Hence variable t be
        // initialized should one lesser than number
        m = number - 1;
  
        // Outer loop 2
        // Prints the second half diamond
        do {
            n = 1;
  
            // Inner loop 1
            // Prints space until ++n <= number - m + 1 is
            // false
            do {
                // Print whitespace between
                System.out.print(" ");
  
            } while (++n <= number - m + 1);
  
            n = 1;
  
            // Inner loop 2
            // Prints star until ++n <= m * 2 - 1 is false
            do {
                // Prints star
                System.out.print("*");
  
            } while (++n <= m * 2 - 1);
  
            // By now done with one row of lower diamond
            // printing so a new line is required
            System.out.println();
  
        }
  
        // Condition for outer do-while loop 2
        while (--m > 0);
    }
}


Java
// Java program to print diamond star pattern
// Using while loop
  
// Importing input output classes
import java.io.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Declaring and initializing variables
  
        // Variable initialized to the row where max star
        // should be there as after that they decreases to
        // give diamond pattern
        int number = 7;
  
        // Diamond starting with single star in first row
        int m = 1;
  
        // Columnar printing
        int n;
  
        // Outer loop 1
        // Prints the first half diamond
  
        // Condition holding true till
        // number of rows initialized
        while (m <= number) {
            n = 1;
  
            // Inner loop 1
            // Prints space until n++ <= number - m is false
            while (n++ <= number - m) {
  
                // Print whitespaces inbetween
                System.out.print(" ");
            }
  
            n = 1;
  
            // Inner loop 2
            // Prints star until n++ <= m * 2 - 1 is false
            while (n++ <= m * 2 - 1) {
  
                // Print star
                System.out.print("*");
            }
  
            // By now we are done for above pyramid printing
            // ending line after each row
            System.out.println();
  
            // Incrementing as we want pyramid generation
            m++;
        }
  
        // Now we are done with printing the upper half
        // diamond.
  
        // Note: Not to print the bottom row again in lower
        // half diamond printing Hence variable t be
        // initialized should one lesser than number
        m = number - 1;
  
        // Outer loop 2
        // Prints the second half diamond
        while (m > 0) {
            n = 1;
  
            // Inner loop 1
            // Prints spaces until n++ <= number - m is
            // false
            while (n++ <= number - m) {
  
                // Print whitespace in between
                System.out.print(" ");
            }
  
            n = 1;
  
            // Inner loop 2
            // Prints star until n++ <= m * 2 - 1 is false
            while (n++ <= m * 2 - 1) {
  
                // Print star
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
  
            // Decrementing as we want reverse pyramid
            // generation
            m--;
        }
    }
}


Java
// Java program to print diamond star pattern
// Using for loop
  
// Importing  input output classes
import java.io.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Declaring and initializing variables
  
        // Variable initialized to the row where max star
        // should be there as after that they decreases to
        // give diamond pattern
        int number = 7;
  
        int m, n;
  
        // Outer loop 1
        // prints the first half diamond
        for (m = 1; m <= number; m++) {
  
            // Inner loop 1 print whitespaces inbetween
            for (n = 1; n <= number - m; n++) {
                System.out.print(" ");
            }
  
            // Inner loop 2 prints star
            for (n = 1; n <= m * 2 - 1; n++) {
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
        }
  
        // Outer loop 2
        // Prints the second half diamond
        for (m = number - 1; m > 0; m--) {
  
            // Inner loop 1 print whitespaces inbetween
            for (n = 1; n <= number - m; n++) {
                System.out.print(" ");
            }
  
            // Inner loop 2 print star
            for (n = 1; n <= m * 2 - 1; n++) {
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
        }
    }
}


输出

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

示例 2:使用 while 循环

Java

// Java program to print diamond star pattern
// Using while loop
  
// Importing input output classes
import java.io.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Declaring and initializing variables
  
        // Variable initialized to the row where max star
        // should be there as after that they decreases to
        // give diamond pattern
        int number = 7;
  
        // Diamond starting with single star in first row
        int m = 1;
  
        // Columnar printing
        int n;
  
        // Outer loop 1
        // Prints the first half diamond
  
        // Condition holding true till
        // number of rows initialized
        while (m <= number) {
            n = 1;
  
            // Inner loop 1
            // Prints space until n++ <= number - m is false
            while (n++ <= number - m) {
  
                // Print whitespaces inbetween
                System.out.print(" ");
            }
  
            n = 1;
  
            // Inner loop 2
            // Prints star until n++ <= m * 2 - 1 is false
            while (n++ <= m * 2 - 1) {
  
                // Print star
                System.out.print("*");
            }
  
            // By now we are done for above pyramid printing
            // ending line after each row
            System.out.println();
  
            // Incrementing as we want pyramid generation
            m++;
        }
  
        // Now we are done with printing the upper half
        // diamond.
  
        // Note: Not to print the bottom row again in lower
        // half diamond printing Hence variable t be
        // initialized should one lesser than number
        m = number - 1;
  
        // Outer loop 2
        // Prints the second half diamond
        while (m > 0) {
            n = 1;
  
            // Inner loop 1
            // Prints spaces until n++ <= number - m is
            // false
            while (n++ <= number - m) {
  
                // Print whitespace in between
                System.out.print(" ");
            }
  
            n = 1;
  
            // Inner loop 2
            // Prints star until n++ <= m * 2 - 1 is false
            while (n++ <= m * 2 - 1) {
  
                // Print star
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
  
            // Decrementing as we want reverse pyramid
            // generation
            m--;
        }
    }
}
输出
*
      ***
     *****
    *******
   *********
  ***********
 *************
  ***********
   *********
    *******
     *****
      ***
       *

示例 3:使用 for 循环

Java

// Java program to print diamond star pattern
// Using for loop
  
// Importing  input output classes
import java.io.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Declaring and initializing variables
  
        // Variable initialized to the row where max star
        // should be there as after that they decreases to
        // give diamond pattern
        int number = 7;
  
        int m, n;
  
        // Outer loop 1
        // prints the first half diamond
        for (m = 1; m <= number; m++) {
  
            // Inner loop 1 print whitespaces inbetween
            for (n = 1; n <= number - m; n++) {
                System.out.print(" ");
            }
  
            // Inner loop 2 prints star
            for (n = 1; n <= m * 2 - 1; n++) {
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
        }
  
        // Outer loop 2
        // Prints the second half diamond
        for (m = number - 1; m > 0; m--) {
  
            // Inner loop 1 print whitespaces inbetween
            for (n = 1; n <= number - m; n++) {
                System.out.print(" ");
            }
  
            // Inner loop 2 print star
            for (n = 1; n <= m * 2 - 1; n++) {
                System.out.print("*");
            }
  
            // Ending line after each row
            System.out.println();
        }
    }
}
输出
*
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *