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

ในรูปนี้ ก็ให้น้อง ๆ เริ่มจากการสังเกต pattern เหมือนเดิมว่าเป็นยังไง เราก็จะได้ว่า

  • แถว 1 -> print 1 *
  • แถว 2 -> print 2 *
  • แถว 3 -> print 3 *
  • แถว 4 -> print 4 *
  • แถว 5 -> print 5 *

เราก็จะเห็นได้ว่า * ในแต่ละแถวของเรา จะมีจำนวนที่เท่ากับเลขแถวเลย

ดังนั้นเราก็จะยังใช้ Nested Loop เหมือนเดิม โดยให้

  • Loop นอก ควบคุมจำนวนแถว
  • Loop ใน ควบคุมจำนวน * ที่ต้อง print ในแถวนั้น

แล้วเราจะทำให้ในแต่ละแถว print * ตามเลขลำดับของแถวได้ยังไงล่ะ? คำตอบคือ เราก็ให้ Loop ในที่ทำหน้าที่ควบคุม * ที่ต้อง print ในแถวนั้น ๆ ทำงานเท่ากับเลขแถวที่ Loop ในนี้กำลังทำงานอยู่สิ

ก็คือ

col <= row

เราก็จะได้โค้ดออกมาเป็น

for (int row = 1; row <= 5; row++) {
    for (int col = 1; col <= row; col++) {
        System.out.print("* ");
    }
    System.out.println();
}

Output ที่ได้คือ

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

ซึ่ง Loop นอกของเรา ก็จะทำหน้าที่ควบคุมจำนวนแถวเหมือนเดิม

for (int row = 1; row <= 5; row++)

Loop นี้จะหมายความว่า ให้ทำงานทั้งหมด 5 แถว ตั้งแต่แถวที่ 1 ถึงแถวที่ 5

จากนั้น Loop ในของเรา จะทำหน้าที่ควบคุมการ print * ในแต่ละแถว

for (int col = 1; col <= row; col++)

จุดที่ต่างจาก pattern ที่แล้วของเรา ก็คือเราไม่ได้ print * 5 ครั้ง หรือให้ col ≤ 5 แล้ว เพราะแต่ละแถวจะ print * ออกมาเป็นจำนวนเท่ากับเลขแถว หรือก็คือให้ col ≤ row แทนนั่นเอง

หลังจากจบ Loop ในทำงานจนเสร็จ หรือก็คือ print * ครบ 1 แถวแล้ว เราก็จะขึ้นบรรทัดใหม่ด้วย

System.out.println();
Built with LogoFlowershow