Skip to main content

Pattern 4 | Java | MyCodingNetwork | Alok Tripathi (Code 6)


Problem Statement:

Write a program to draw the following pattern where number of rows are decided by the user and given to the program as input:

        *

      * *

    * * *

  * * * *

* * * * *

* * * * * *

(Take a variable n which takes the number of rows as input from the user, For above example, n=6)



OUTPUT:


The above program is the extension of the previous program (Pattern #3). This program asks the user to input the number of rows that it wants in the program. For accepting the input, the program has Scanner class which has been extracted from the package java.util. In this program, we will learn how to receive data from the user.

If you remember in three previous patterns, the program itself had the input of number of rows where n=8, but now the user will tell the program how many rows are to be added.

 

Simplification

1.    In Line 1, the java.util package has been imported, to use the Scanner class.

import java.util.Scanner;

2.    Further, in line 4 an object sc of Scanner class has been created using the following Syntax:

Scanner sc=new Scanner(System.in);

 

3.    Line 5 has a print statement, asking the user to input the number of rows:

System.out.println("Enter No. of Rows");

 after that on Line 6 there is an int variable n to accept an integer value (you can compare this to the previous pattern code where 8 was already assigned)

int n=sc.nextInt();

 

5. The first for loop is used to define the rows. 

It is having a counter variable i with an initial value of 0 followed by a conditional statement, i less than n. It is having an updation statement i++. Inside the loop's body we further have two for loops and a print statement System.out.println( ) for jumping on to the next line( to change the row) after each column in the particular row has been printed.

6. The second for loop is used to print white space. 

It is having a counter variable j with an initial value of 0 followed by a conditional statement, j less than n-1-i. It is having an updating statement j++. Inside the loop's body a print statement System.out.print("  ") for printing white space characters column-wise, i.e., columns where *(star) is not required.

 

7. The third for loop is used to print stars(*). 

This loop will start after the second for loop terminates. It is having a counter variable k with an initial value of 0 followed by a conditional statement, k less than or equal to i. It is having an updating statement k++. Inside the loop's a print statement System.out.print("* ") for printing *(star) column-wise. 

 

When the third loop terminates the execution will jump on the print statement of the first for loop, that is, System.out.println( ) which changes the row in the output. After this, execution will check the conditional statement in the first for loop, if the condition is true the process will continue and if the condition is false the entire loop terminates.

 

Hope you liked this explanation, for any doubt or feedback you can comment down in the comment section.