title: Return usage in Java recursion
body: <pre><code>public class Example {
  
       public static void main(String[] args) {
  
          printTriangle(4);
  
      }
  
       static void printLine(int width){
              for (int i = 0; i&lt; width; i ++){
                  System.out.print("*");
              }
  
              System.out.println();
          }
  
       static void printTriangle(int height){
              if (height &lt;= 0){
                  return;
              }
  
              printTriangle(height-1);
              printLine(height);
          }   
  }
  </code></pre>
  
  <p>In method <code>printTraingle()</code> how does argument for <code>printLine(height)</code> increments each time after calling .First <code>height</code> gets decremented to 1 and then it reincrement to 4 . How is this possible </p>