ตัวอย่าง 1:
*
* *
* * *
* * * *
* * * * *
เราพิจารณาจากรูป จะเห็นว่า เป็นรูปสามเหลี่ยมที่มีจุดเริ่มต้นอยู่ทางด้านซ้ายเป็นหลัก มีแถวทั้งหมด 5 แถว (rows) โดยแต่ละแถวจะแสดงเครื่องหมาย "*" ตามจำนวนของบรรทัดหรือแถวนั้นๆ เช่น แถวแรก จะแสดงเครื่องหมาย "*" ตัวเดียวเท่านั้น และถ้าเป็นแถวที่ 4 ก็จะแสดงเครื่องหมาย "*" 4 ตัวด้วยกัน เพราะฉะนั้นเราจะใช้ loop ในการทำงานทั้งหมด 2 loop ด้วยกัน โดยกำหนดให้ loop แรก ทำหน้าที่เป็นแถว และ loop ที่ 2 ทำหน้าที่แสดงเครื่องหมาย "*" เท่ากับจำนวนของแถวนั้นๆ (อธิบายก่อนหน้า)
Source Code:
int main ( ) {
int r, c; // r - row, c - column
for (r = 0; r < 5; r++) {
for (c = 0; c <= r; c++) {
printf("*");
}
printf("\n");
}
return 0;
}
จาก Source Code ที่เขียนมาได้ใช้ for loop ซึ่งง่ายและสะดวก แต่ถ้าต้องการใช้ loop อื่นก็สามารถทำได้นะครับ ลองนำไปประยุกต์ดูครับ
ตัวอย่าง 2:
* * * * *
* * * *
* * *
* *
*
เราพิจารณาจากรูป จะเห็นว่าเป็นรูปสามเหลี่ยมที่มีจุดเริ่มต้นอยู่ทางด้านซ้ายเป็นหลัก มีแถวทั้งหมด 5 แถว (rows) โดยแต่ละแถวจะแสดงเครื่องหมาย "*" เช่นกัน (คล้ายตัวอย่างที่ 1) ในการแสดงเครื่องหมาย "*" ของแถวแรกจะแสดงทั้งหมด 5 ตัวด้วยกัน และลดลงตามลำดับ เพราะฉะนั้นเราจะ loop ในการทำงานทั้งหมด 2 loop ด้วยกัน โดยกำหนดให้ loop แรก ทำหน้าที่เป็นแถว และ loop ที่ 2 ทำหน้าที่แสดงเครื่องหมาย "*"
Source Code:
int main( ) {
int r, c; // r - row, c - column
for (r = 0; r < 5; r++) {
for (c = 0;
c < 5-r; c++) {
printf("*");
}
printf("\n");
}
return 0;
}
ถ้าพิจารณาจาก Source Code ที่เขียนจะเห็นว่ามีลักษณะคล้ายกัน ใช่ไหมครับ แต่สิ่งที่เปลี่ยน (แก้ไข) คือ c < 5-r ซึ่งเป็นเงื่อนไขในการตรวจสอบที่อยู่ใน loop ของ c และยังใช้ for loop ซึ่งง่ายและสะดวก แต่ถ้าต้องการใช้ loop อื่นก็สามารถทำได้นะครับ ลองนำไปประยุกต์ดูครับ แต่ถ้าเขียนอีกรูปแบบหนึ่งก็จะได้ผลลัพธ์เช่นเดียวกััน (เหมือนกัน)
Source Code:
int main ( ) {
int r, c; // r - row, c - column
for (
r = 5; r > 0; r--) {
for (c = 0;
c < r; c++) {
printf("*");
}
printf("\n");
}
return 0;
}
ถ้าพิจารณาจาก Source Code ที่เขียนจะเห็นว่ายังมีลักษณะคล้ายกัน แต่ปรับเปลี่ยนหลักการทำงานใหม่ คือ ให้ค่าเริ่มต้นของแถว จากเดิมเป็น 0 เปลี่ยนเป็น 5 ที่ loop ของ r และเป็นเงื่อนไขที่ loop ของ c ด้วย (สังเกตที่สีนะครับ)
สุดท้ายเป็นข้อคิดนะครับ:
จากตัวอย่างที่แสดงให้เห็นนั้นจะสังเกตได้ว่าแนวคิดจะเหมือนกัน (คล้ายกัน) เพียงแต่กระบวนการประมวลผลหรือการเปรียบเทียบเงื่อนไขอาจแตกต่างกัน แต่ผลลัพธ์ที่ได้จะเหมือนกัน เพราะฉะนั้น แนวคิดอาจจะเหมือนกัน แต่กระบวนการอาจจะไม่เหมือนกันก็ได้ครับ (ฝากให้คิด)