7.31.2554

เนื้อหาการปะชุมครั้งที่ 7

คำสั่ง for ,while ,do...while

1. for (วนลูปการทำงานด้วยจำนวนรอบที่แน่นอน)
เป็นคำสั่ง for เป็นคำสั่งวนซ้ำการทำงานเดิมๆ ด้วยจำนวนรอบที่แน่นอน โดยที่โปรแกรมจะตรวจสอบเงื่นไขการทำงานทุกรอบ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภายในในลูปต่อไป เมื่อทำงานเสร็จจะเพิ่มหรือลดค่าตัวแปรที่ใช้กำหนดเงื่อนไข และตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขเป็นเท็จให้โปรแกรมออกจาก ลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง for ในภาษ C มีรุปแยบบคำสั่งดังนี้

for(initial; condition; change)
{
statements;
}
โดยที่ initial เป็นส่วนกำหนดค่าเรื่มต้นของตัวแปรที่ใช้กำหนดเงื่อนไข
condition เป็นส่วนกำหนดเงื่อนไขการวนลูป
change เป็นส่วนการเปลี่ยนแปลงของตัวแปรในแต่ละรอบ
statements เป็นชุดคำสั่งที่ต้องทำเมื่อเงื่อนไขเป็นจริง

Flowchart

Ex.1
#include
#include
main( )
{
int count, sum, n;
printf("Enter integer : ");
scanf("%d", &n);

sum = 0;
for (count = 1; count <= n; count++)
{
sum += count;
}

printf("Sum = %d", sum);

getch ( ) ;
}

Result
Enter integer : 9
Sum= = 45
ในกรณีจำนวนคำสั่ง for มีแค่คำสั่งเดียว ไม่จำเป็นต้องใส่เครื่องหมาย { } ก็ได้ แต่ผู้เขียนแนะนำให้ผู้อ่านใส่เครื่องหมาย { } ทุกครั้งที่มีการใช้คำสั่ง for

อธิบายการทำงานโปรแกรม
  1. บรรทัดที่ 6 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ count, sum และ n
  2. บรรทัดที่ 9 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
  3. บรรทัดที่ 11 กำหนดค่าให้ตัวแปร sum = 0
  4. บรรทัดที่ 13-16 กำหนดให้โปรแกรมมวนลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } คำสั่ง for โดย กำหนดค่าเริ่มต้นของเงื่อนไขที่ตัวแปร count = 1 แล้วตรวจสอบเงื่อนไขว่า ค่าตัวแปร count น้อยก่าค่าตัวแปร n หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ ทำงาน ชุดคำ สั่งภายในลูปอีกครั้ง ถ้าเงื่อนไขเป็นเท็จให้ออกจากลูปการทำงานทันที
  5. บรรทัดที่ 15 กำหนดค่าใฟ้ตัวแปร sum เท่ากับผลรวมของตัวแปร sum กับตัวแปร count
  6. บรรทัดที่ 18 แสดงค่าตัวแปร sum ทางจอภาพ

2. while (วนลูปการทำงานเมื่อเงื่อนไขเป็นจริง)

คำสั่ง while เป็นคำสั่งวนคำสั่งวนซ้ำการทำงานเดิมๆของโปรแกรม โดนโปรแกรมตรวจสอบเงื่อนไขก่อนการทำงานทุกครั้ง ถ้าเงื่อนไขที่กำหนดเแ็นจริง โปรแกรมจะทำงานที่ชุดคำสั่งภายในลูป เมื่อโปรแกรมทำงานเสร็จจะตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขที่กำหนดเป็นเท็จ โปรแกรมจะออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง while ในภาษา C มีรูปแบบคำสั่งดังนี้

while (condition)
{
statement;
}

โดยที่ condition เป็นเงื่อนไขที่กำหนดให้ตรวจสอบก่อนทำงานภายในลูปทุกครั้ง
statement เป็นชุดคำสั่งที่ต้องทำเมื่อเงื่อนไขเป็นจริง


Flowchart
Ex.2
#include
#include

main ( )
{
int count, n;
printf("Enter integer : ");
scanf("%d", &n);

count = 0;
printf("\n\n");

while(count < n)
{
printf("\t%d", count);
count++;
}
getch ( ) ;
}

Result
Enter integer : 7

0 1 2 3 4 5 6

อธิบายการทำงานของโปรแกรม
  1. บรรทัดที่ 6 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ count และ n
  2. บรรทัดที่ 9 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
  3. บรรทัดที่ 11 กำหนดค่าให้ตัวแปร count เท่ากับ 0
  4. บรรทัดที่ 13-18 กำหนดให้โปรแกรมลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } ด้วยคำสั่ง while โดยตรวจสอบเงื่อนไจว่า ค่าตัวแปร count น้อยกว่าค่าตัวแปร n หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภายในลูป เมื่อทำงานเสร็จแล้วให้ตรวจสอบ เงื่อนไขค่าตัวแปร count น้อยกว่าค่าตัวแปร n หรือไม่อีกครั้ง ถ้าเงื่อนไขเป็นจริง ให้ทำงานที่ชุดคำสั่งภายในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
  5. บรรทัดที่ 16 แสดงค่าตัวแปร count ทางจอภาพ
  6. บรรทัดที่ 17 เพิ่มค่าแปร count ขึ้น 1 ค่า

3. do...while (วนลูปการทำงานอย่างน้อย 1 ครั้ง)

คำสั่ง do...while เป็นคำสั่งวนซ้ำการทำงานเดิมๆ โดยโปรแกรมจะทำงานชุดคำสั่งในลูปก่อน 1 รอบ จึงตรวจสอบเงื่อนไขที่กำหนด ถ้าเงื่อนไขที่กำหนด ถ้าเงื่อนไขที่กำหนดเป็นตริงให้กลับไปทำงานชุดคำสั่งภายในลูปอีกครั้ง และตรวจสอบเงื่อนไขที่กำหนดอีกครั้ง ถ้าเงื่อนไขที่กำหนดเป็นเท็จโปรแกรมจะออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง do...while ในภาษ C มีรูปแบบคำสั่งดังนี้

do
{
statements;
}while (condition);

โดยที่ condition เป็นเงื่อนไขที่กำหนดให้ตรวจสอบหลังทำงานภายในลูปทุกครั้ง
statements เป็นชุดคำสั่งที่ทำงานก่อนตรวจสอบเงื่อนไข
จากรูปแบบคำสั่ง do...while เราสามารถเขียนแผนภูมิการทำงาน (Flowchart) ได้ดังนี้

#include
#include

main ( )
{
char ch;
int sum, n;

sum = 0;

do
{
printf("\n\n");
printf("Enter integer : ");

sum = sum + n;

printf("Do you want do again : ");
ch = getch( );
} while(ch != 'N');

printf("\n\n");
printf("Sum : %d", sum);
getch( );
}
Result
Enter integer : 9
Do you want to do again :
Enter integer : 7
Do you want to do again :
Enter integer : 6
Do you want to do again :
Sum : 22

อธิบายการทำงานของโปรแกรม
  1. บรรทัดที่ 6 ประกาศตัวแปรชนิดอักขระชื่อ ch
  2. บรรทัดที่ 7 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ sum และ n
  3. บรรทัดที่ 9 กำหนดค่าตัวแปร sum = 0
  4. บรรทัดที่ 11-21 กำหนดให้โปรแกรมวนลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } ด้วยคำสั่ง do...while โดนทำงานที่ชุดคำสั่งภายในลูปก่อน 1 ครั้ง แล้วตรวจสอบเงื่อนไขว่า ค่าตัวแปร ch ไม่เท่ากับ N หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภาย ในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปไปคำสั่งต่อไปทันที
  5. บรรทัดที่ 15 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
  6. บรรทัดที่ 17 กำหนดค่าให้ตัวแปร sum เท่ากับผลรวมของตัวแปร sum กับตัวแปร n
  7. บรรทัดที่ 20 รับข้อมูลชนิดอีกขระจากแป้นพิมพ์เก็บไว้ที่ตัวแปร ch
  8. บรรทัดที่ 21 ตรวจสอบเงื่อนไขค่าตัวแปร ch ไม่เท่ากับ N หรือไม่ ถ้าเงื่อนไขเขเป็นจริงให้ ทำงานที่ชุดคำสั่งภายในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปการทำงานไปทำงาน ที่คำ สั่งถัดไป

สรุปเนื้อหาบทที่ 6

การเขียนโค้ดเพื่อกำหนดให้โปแกรมวนลูปทำงานในชุดคำสั่งเดียวกัน ตามเงื่อนไขที่เราต้องการในภาษ C นั้น มีด้วยกัน 3 คำสั่งคือ คำสั่ง for, คำสั่ง while, คำสั่ง do...while รูปแบบดังนี้
  • คำสั่ง for
for (initial; condition; change)
{
statements;
}

  • คำสั่ง while
while(condition)
{
statements;
}

  • คำสั่ง do...while
do
{
statements;
}while (condition);



7 ความคิดเห็น:

  1. ไม่ระบุชื่อ1 สิงหาคม 2554 เวลา 09:12

    โปรมแกรมนี้เป็นโปรแกรมบวกเลขที่หารด้วยแฟรกโดยnคือค่าที่เราป้อนเข้าในโปรแกรม
    1/1+1/1!-1/2!+1/3!+...+1/n-1+1/n
    #include
    float flag (int n);
    int main ()
    {
    int n;
    printf ("Enter n:");
    scanf ("%d",&n);
    printf ("summation is %f",flag(n));
    }
    float flag (int n)
    {
    int b;
    float z=0,a;

    while (n!=0)
    {
    a=1;
    b=n;
    while(b!=0)
    {
    a=a*b;
    b=b-1;
    }
    a=1.00/a;
    n=n-1;
    z=z+a;
    }
    return z;
    (นาย ปลวัชร เปรมสิริอำไพ 54-010116-2033-0)

    ตอบลบ
  2. วีรศักดิ์ ดังชนกนันท์1 สิงหาคม 2554 เวลา 10:55

    โปรแกรม ใส่เลขจำนวนเต็ม เมื่อใส่จำนวนเต็มลบแล้วจะแสดงผลรวมของจำนวนเต็มบวกที่เป็นเลขคู่ แล้วออกจากโปรแกรม

    #include"stdio.h"
    int main (void)
    {
    int x,y,sum;
    sum=0;
    while(1)
    {
    printf("Enter :");
    scanf("%d",&x);
    if(x<0)
    break;
    else if(x>0)
    y=x%2;
    if(y==0)
    sum=sum+x;
    }
    printf("total = %d",sum);
    }

    แสดงผล

    Enter :8
    Enter :1
    Enter :5
    Enter :2
    Enter :-1
    total = 10

    ตอบลบ
  3. ไม่ระบุชื่อ1 สิงหาคม 2554 เวลา 20:36

    โปรแกรมแสดงผลเลข 1 ถึง 10
    #include"stdio.h"
    int main(void)
    {
    int counter;
    for(counter=1; counter<=10; counter++)
    {
    printf("%d\n",counter);
    }
    return 0;
    }

    การแสดงผล คือ
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    (น.ส. พรทิพย์ ทาบุตร 54-010116-2036-4)

    ตอบลบ
  4. ไม่ระบุชื่อ1 สิงหาคม 2554 เวลา 21:57

    โปรแกรมแสดงเลข 10 ถึง 1

    #include"stdio.h"
    int main(void)
    {
    int count;
    count=10;
    while(count>=1)
    {
    printf("%d\n",count);
    count--;
    }
    return 0;
    }



    แสดงผล
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1





    (หัสรา วัจนะรัตน์ 5401011620542)

    ตอบลบ
  5. ศราวุฒิ คำเมือง 54-010116-2049-62 สิงหาคม 2554 เวลา 21:53

    โปรแกรมใส่รบค่าเลขคู่จากแป้นพิมพ์ถ้าเป็นลขขี้จะไม่นับละทำการบวกหาผลรวมของเลขคู่
    #include
    int main()
    {
    int a,b=0;
    prinnf("Please enter number :");
    scanf("%d",&a);
    while(a>=0)
    {
    b=b+a;
    printf("Please enter 1 more ");
    scanf("%d",&a);
    }
    printf("Result = %d",b);
    return 0;
    }

    ตอบลบ
  6. #include
    void main (void)
    {
    char out = 'n';

    while (out != y)
    {
    printf ("\n Do you want to exit [Y]es or [N]o :");
    scanf ("%c",&out);
    }
    printf("End");

    return 0;
    }
    การทำงาน
    Do you want to exit [Y]es or [N]o:n
    Do you want to exit [Y]es or [N]o:n
    Do you want to exit [Y]es or [N]o:y
    End

    นายธน สุทธิธรรม 5401011630149

    ตอบลบ
  7. ไม่ระบุชื่อ4 สิงหาคม 2554 เวลา 21:27

    สูตรคูณแม่ 175
    #include "stdio.h"
    int main (void)
    {
    int i;
    int j;
    for(i=o,j=0;i<=12(น้อบกว่าหรือเท่ากับ12);i++,j+=175)
    {
    printf("%d x 175 = %d\n",i,j);
    }
    return 0;
    }

    แสดง ผลสูตรคูณแม่175
    1 x 175 = 175
    2 x 175 = 350
    3 x 175 = 525
    4 x 175 = 700
    5 x 175 = 875
    6 x 175 = 1050
    7 x 175 = 1225
    8 x 175 = 1400
    9 x 175 = 1575
    10 x 175 = 1750
    11 x 175 = 1925
    12 x 175 = 2100

    นาย ประวีร์ แสงทอง 54-010116-2032-1

    ตอบลบ