Page 1 of 1

การเขียน for loop ในภาษา C

Posted: 03/12/2019 6:24 pm
by Grammanano
บทความนี้เกี่ยวกับการเขียน for loop ในภาษาซี โดยจะมีลักษณะการเขียนต่างไปจากลูป while และ do while แต่สามารถทำงานได้เหมือนกัน ซึ่งการทำลูปหรือการวนซ้ำนั้น จะช่วยให้เราประหยัดพื้นที่ในการเขียน เช่น หากต้องการให้แสดงเลข 1-10 เราไม่จำเป็นต้องใช้คำสั่งแสดงผลถึง 10 บรรทัด แต่เราสามารถวนซ้ำการทำงานได้ภายใน 3-4 บรรทัด


for loop ในภาษา C มีรูปแบบ คือ

Code: Select all

for ( 1. กำหนดค่าเริ่มต้น ; 2. เงื่อนไข ; 3. เปลี่ยนแปลงค่าตัวแปร )
{
   ...คำสั่ง...
   .
   .
}
ทำงานโดยมีการกำหนดค่าเริ่มต้นในส่วนที่ 1 ก่อนแล้วจึงตรวจสอบเงื่อนไขในส่วนที่ 2 หากเงื่อนไขถูกจึงค่อยทำคำสั่งใน { } เมื่อจบลูป 1 รอบ ตัวแปรจะถูกเปลี่ยนแปลงตามที่กำหนดไว้ในส่วนที่ 3 จากนั้นจึงตรวจสอบเงื่อนไขและทำตามคำสั่งใน { } ไปเรื่อย ๆ จนกว่าเงื่อนไขจะไม่ถูกต้อง หรือเจอคำสั่ง break
ตัวอย่างโปรแกรม

Code: Select all

#include <stdio.h>

int main()
{
    int i;
    for (i=1;i>1;i++)
    {
        printf("Yey");
    }
    
    printf("Nothing");

    return 0;
}
ผลที่ได้
Share Knowledge-1.png
Share Knowledge-1.png (1.26 KiB) Viewed 1207 times
แสดงคำว่า Nothing เพราะเมื่อกำหนดค่าตัวแปร i = 1 แล้ว ไม่ตรงตามเงื่อนไข i < 1 จึงไม่เข้าไปทำงานในลูป
for loop เองก็สามารถทำงานเหมือนกับ while และ do while ได้
เช่น

โปรแกรมนับและแสดงเลข 1-10

Code: Select all

#include <stdio.h>

int main()
{
    int i;
    for (i=1;i<11;i++)
    {
        printf("%d ",i);
    }

    return 0;
}
ผลที่ได้
Share Knowledge-2.png
Share Knowledge-2.png (1.97 KiB) Viewed 1207 times
นอกจากคำสั่ง break แล้ว ยังมีคำสั่ง continue
break จะใช้ในการออกจากลูป หรือเป็นการทำให้เงื่อนไขลูปกลายเป็น false โดยอัตโนมัติ แต่ continue จะเป็นการกระโดดข้ามไปทำต้น loop ใหม่
เช่น

Code: Select all

#include <stdio.h>

int main()
{
    int i;
    for (i=1;i<11;i++)
    {
        printf("%d ",i);
        if (i == 5)
        {
            printf("\nBefore continue\n");
            continue;
            printf("After continue");
        }
    }

    return 0;
}
ผลที่ได้
Share Knowledge-3.png
Share Knowledge-3.png (3.48 KiB) Viewed 1207 times
จะเห็นได้ว่าเมื่อ i = 5 จะทำการแสดงคำว่า Before continue แต่ไม่แสดงคำว่า After continue เพราะมีคำสั่ง continue คั่นกลาง เมื่อโปรแกรมเจอ continue จึงทำการกระโดดข้ามไปวนลูปใหม่ทันที



บทความที่เกี่ยวข้อง
การเขียน if/else ในภาษา C
ภาษาซี กับ โจทย์ loop ในตำนาน
การเขียน while loop ในภาษา C
การเขียน do while loop ในภาษา C

Re: การเขียน for loop ในภาษา C

Posted: 03/12/2019 7:14 pm
by chatee supasand
ขาดเกริ่นนำนะครับ ควารมีเกริ่นนำด้วยครับ