DEV Community

Cover image for For Loops Pyramid
Raymundo Alva
Raymundo Alva

Posted on

For Loops Pyramid

Lately I decided to learn a new programming language. I decided to go with Java because there is so many resources and it is relatively easy to learn. One of the first problems I solved using Java was to print a pyramid shape using for loops. It was a fun little problem so I would love to share my thought process.

This is what the pyramid shape is supposed to look like.

    \*  
   \*\*\*  
  \*\*\*\*\*  
 \*\*\*\*\*\*\*  
\---------
Enter fullscreen mode Exit fullscreen mode

I broke this down into multiple for loops. First I needed a for loop that would print a whole layer of the pyramid one by one. So let’s keep it simple and start with that.

int num = 4;

for (int i = 1; i <= num; i++) {


  System.out.println("");

}
Enter fullscreen mode Exit fullscreen mode

The num variable represents the number of layers that the pyramid will have. In the for loop we are printing a new line after each layer is created. Now we take another look at our pyramid and see that every layer starts with spaces first. The spaces are decremented after each layer. Also notice that num is equal to the number of spaces the pyramid starts with. We can use another loop to first print the spaces. It should look like this.

int num = 4;

for (int i = 1; i <= num; i++) {

  for (int j = i; j <= num; j++) {  
    System.out.print(" ");  
  }

System.out.println("");  
}
Enter fullscreen mode Exit fullscreen mode

Very simple right? In this new for loop we set the variable j equal to our variable i from the outer for loop. This is so that the correct number of spaces prints out after every layer is done. Next we need to actually print out the stars that will represent the body of the pyramid. Another simple for loop will do the trick. This for loop will start once the spaces for loop is done. It will look like this.

int num = 4;

for (int i = 1; i <= num; i++) {

  for (int j = i; j <= num; j++) {  
    System.out.print(" ");  
  }

  for (int k = 1; k < (i \* 2); k++) {  
    System.out.print("\*");  
  }

System.out.println("");  
}

System.out.println("-----------");
Enter fullscreen mode Exit fullscreen mode

Awesome! This new loop prints a star for every iteration. The difference here is that in the condition we check to see if k is less than i times 2. This is because each layer increments the number of stars being printed by 2. Notice we also added a line at the end that prints out the base of the pyramid once the body is done printing.

Nice pyramid! This is such a simple problem that helps you get used to using loops in different ways. There are other shapes you can try to print using loops in Java. For an extra challenge try inverting the pyramid. Have fun and happy coding. 😎

Top comments (2)

Collapse
 
kalkwst profile image
Kostas Kalafatis

Just a heads up that you can add highlighting to the code blocks if you'd like. Just change:

code block with no colors example

... to specify the language:

code block with colors example

More details in our editor guide!

Collapse
 
mowali_dev profile image
Moses John

Awesome. I'm also currently learning JavaScript but unlike you, it's my first programming language. Also looking forward to solving many problems