📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Creating a diamond pattern in Java is a great way to practice loops and understand the logic behind pattern printing. In this blog post, we'll write a Java program to print a diamond shape consisting of asterisks (*). This pattern is a combination of two components: the upper half and the lower half. The upper half is an ascending triangle, and the lower half is a descending triangle. Let's dive into how we can achieve this.
Step 1: Understand the Diamond Structure
A diamond pattern of height n (considering n as the length of the diagonal from the center to a corner) involves printing spaces and asterisks (*) in a specific order. The pattern's width and height are the same, making it perfectly symmetrical vertically and horizontally.
Step 2: Writing the Java Program
Here is a Java program that outputs a diamond shape pattern based on the number of rows input by the user, with detailed comments in the code, and an explanation for each step:
package com.example.shorts.programs; import java.util.Scanner; public class DiamondShapePattern { public static void main(String[] args) { // Initialize scanner to read from the console Scanner scanner = new Scanner(System.in); // Display the program title System.out.println("Diamond Shape Pattern Generator"); // Ask the user for the number of rows (half of the diamond height) System.out.print("Enter the number of rows for half of the diamond: "); int numRows = scanner.nextInt(); // Read the number of rows from user input // Print the upper half of the diamond for (int i = 1; i <= numRows; i++) { // Print leading spaces for (int j = numRows - i; j >= 1; j--) { System.out.print(" "); } // Print stars for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); // Move to the next line } // Print the lower half of the diamond for (int i = numRows - 1; i >= 1; i--) { // Print leading spaces for (int j = 1; j <= numRows - i; j++) { System.out.print(" "); } // Print stars for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); // Move to the next line } // Close the scanner scanner.close(); } }
Step 3: Step-by-Step Explanation
- Loop for Rows: Iterates from 1 to numRows, where each iteration represents a row in the upper half of the diamond.
- Loop for Spaces: Before printing stars, this loop outputs spaces to align the stars properly and create the narrowing effect as the row number decreases.
- Loop for Stars: Prints a sequence of stars (*) that increases with each row, forming the expanding part of the diamond.
- Loop for Rows: Counts down from numRows - 1 to 1 to print the lower half of the diamond, mirroring the upper half.
- Loop for Spaces: Outputs leading spaces to align the stars correctly, inversely proportional to the row number to create the widening effect as the row number decreases.
- Loop for Stars: Prints stars that decrease with each subsequent row, completing the diamond shape.
Comments
Post a Comment
Leave Comment