การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

55
บบบบบ 4 บบบบบบบบบบบบบบบบบบบ

Upload: little-junney

Post on 19-May-2015

175 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

บทท�� 4 การเขี�ยนคำ าสั่��งคำวบคำ�มแบบวนซ้ำ �า

Page 2: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ภาษา  C  ม�คำ าสั่��งท��ใช้�คำวบคำ�มการท างานขีองโปรแกรมดั�งน��

Page 3: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งวนลู#ปหร%อท างานซ้ำ �า ๆ เป'นลู#ป (loop

statement)

Page 4: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งวนลู#ปหร%อท างานซ้ำ �า ๆ เป'นลู#ป (loop statement)           คำ��สั่��งวนลู�ปเป�นคำ��สั่��งที่��สั่�ม�รถคำวบคำ�มโปรแกรมให้�ที่��ง�นเป�นจำ��นวนรอบต�มที่��เร�ก��ห้นดไว�  ห้ร#อที่��ง�นจำนกว$�เง#�อนไขที่��ก��ห้นดไว�เป�นเที่&จำ  จำ'งจำะออกจำ�กคำ��สั่��งวนลู�ปได� 1.คำ าสั่��ง  for      for  เป�นคำ��สั่��งที่��สั่� �งให้�โปแกรมม�ก�รที่��ง�นซ้ำ�*� ๆ วนลู�ปจำนกว$�เง#�อนไขที่��ก��ห้นดไว�เป�นเที่&จำ  จำ'งออกจำ�กคำ��สั่��ง  for  ไปที่��คำ��สั่��งถ�ดไป  คำวรใช้�คำ��สั่��ง  for  ในกรณี�ที่��ที่ร�บจำ��นวนรอบของก�รที่��ง�น ร#ปแบบการใช้�คำ าสั่��ง  for โดยที่��    for  (expression1; expression2; expression3) expression1  คำ#อ น/พจำน1ที่��ใช้�ก��ห้นดคำ$�เร/�มต�นให้�ก�บต�วแปรที่��จำะใช้� statement; วนลู�ปห้ร#อ expression2  คำ#อ น/พจำน1ที่��ใช้�ที่ดสั่อบเง#�อนไข ซ้ำ'�งจำะม�คำ$�จำร/งห้ร#อ for  (expression1; expression2; expression3) เที่&จำอย$�งใดอย$�งห้น'�งเที่$�น�*น{ expression3  คำ#อ  น/พจำน1ที่��ใช้�เพ/�มห้ร#อลูดคำ$�ต�วแปรที่��จำะใช้�วนลู�ปstatement(s); tatement(s)  คำ#อ คำ��สั่��งต$�ง ๆ ถ��ม�ม�กกว$� 1 คำ��สั่��ง จำะต�องเข�ยนอย�$} ภ�ยในเคำร#�องห้ม�ย  {….}

Page 5: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ลู�กษณะการท างานขีองคำ าสั่��ง  for  สั่�ม�รถเข�ยนเป�นแผนผ�งได�ด�งน�*

ร#ปท��  4.1  ผ�งง�นแสั่ดงลู�กษณีะก�รที่��ง�นของคำ��สั่��ง  for

Page 6: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+าง  แสั่ดงก�รใช้�คำ��สั่��ง  for  เพ#�อวนแสั่ดงต�วเลูข  1  ถ'ง  10  ออกแสั่ดงที่��จำอภ�พ  /*             for1.c        */#include<stdio.h>                                             /*  บรรที่�ดที่��  1  */#include<conio.h>                                                             /*  บรรที่�ดที่��  2  */void main(void)                                                     

/*  บรรที่�ดที่��  3  */{                                                                                     /*  บรรที่�ดที่��  4  */      int  num;                                                                    /*  บรรที่�ดที่��  5  */      clrscr( );                                                                     /*  บรรที่�ดที่��  6  */      for (num=1; num<=10; num++)                                  /*  บรรที่�ดที่��  7  */            printf( "%3d\n", num);    /*  end for   */              /*  บรรที่�ดที่��  8  */      printf("\n\nPress any key back to program...");           /*  บรรที่�ดที่��  9  */      getch();                                                                        /*  บรรที่�ดที่��  10  */}                                                                                     /*  บรรที่�ดที่��  11  */

Page 7: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 8: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม           จำ�กโปรแกรมต�วอย$�งสั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*

บรรท�ดัท��  7  คำ��สั่��ง  for (num = 1;  num <=10;  num++)  จำะเร/�มที่��ง�นโดยก�รก��ห้นดคำ$�เร/�มต�นต�วแปร  num  เป�น  1  จำ�กน�*นที่ดสั่อบเง#�อนไข  num <= 10  จำร/งห้ร#อเที่&จำ  ถ��เป�นจำร/งจำะที่��ง�นต�มคำ��สั่��งบรรที่�ดที่��  8  ถ��เป�นเที่&จำออกจำ�ก  for  ไปที่��คำ��สั่��งบรรที่�ดที่��  9บรรท�ดัท��  8  ฟั8งก1ช้�น  printf( )  เพ#�อพ/มพ1คำ$�ของต�วแปร  num  ในแต$ลูะรอบของก�รที่��ง�น  แลูะข'*นบรรที่�ดให้ม$ด�วย  ออกแสั่ดงที่��จำอภ�พบรรท�ดัท��  9  ฟั8งก1ช้�น printf( ) แสั่ดงข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรมบรรท�ดัท��  10  ห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม

Page 9: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

  2.คำ าสั่��ง  while                      while  เป�นคำ��สั่��งที่��ม�ก�รที่��ง�นซ้ำ�*� ๆ เป�นลู�ป  แลูะม�ลู�กษณีะก�รที่��ง�นของคำ��สั่��งคำลู��ยก�บคำ��สั่��ง  for  แตกต$�งก�นตรงที่��  ก�รใช้�  while  ไม$ต�องที่ร�บจำ��นวนรอบของก�รที่��ง�นที่��แน$นอน  แต$ต�องม�เง#�อนไขที่��เป�นเที่&จำจำ'งจำะออกจำ�กคำ��สั่��ง  while  ได�ร#ปแบบการใช้�คำ าสั่��ง  whilewhile  (expression)  statement; ห้ร#อwhile  (expression){statement(s);}             โดยที่��    expression  คำ#อ  น/พจำน1ที่��ใช้�ที่ดสั่อบเง#�อนไข  ถ��น/พจำน1น�*ให้�ผลูลู�พธิ1เป�นจำร/งจำะที่��ต�มคำ��สั่��งที่��อย�$ภ�ยในคำ��สั่��ง  while  จำนกว$�เง#�อนไขเป�นเที่&จำจำ'งออกจำ�กคำ��สั่��ง  while  ได�

Page 10: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ลู�กษณะการท างานขีองคำ าสั่��ง  while  สั่�ม�รถเข�ยนเป�นแผนผ�งได�ด�งน�*

Page 11: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+าง แสั่ดงก�รใช้�คำ��สั่��ง  while  เพ#�อวนคำ��นวณีคำ$�สั่ะสั่มต�วเลูข  1  ถ'ง  10  แลูะห้�คำ$�เฉลู��ย  แลู�วแสั่ดงผลูออกจำอภ�พ /* while1.c             */#include<stdio.h>                                                              /*  บรรที่�ดที่��  1  */#include<conio.h>                                                             /*  บรรที่�ดที่��  2  */void main(void)                                                                    /*  บรรที่�ดที่��  3  */{                                                                                              /*  บรรที่�ดที่��  4  */      int n=1;                                                                  /*  บรรที่�ดที่��  5  */      float sum =0 ,  avg;                                              /*  บรรที่�ดที่��  6  */      clrscr( );                                                                 /*  บรรที่�ดที่��  7  */      while ( n < 11 )                                                     /*  บรรที่�ดที่��  8  */      {                                                                               /*  บรรที่�ดที่��  9  */            sum+=n;                                                            /*  บรรที่�ดที่��  10  */            n++;                                                                    /*  บรรที่�ดที่��  11  */      }   /*  end  while   */                                              /*  บรรที่�ดที่��  12  */      n--;                                                                          /*  บรรที่�ดที่��  13  */      avg = sum/n;                                                        /*  บรรที่�ดที่��  14  */      printf("N = %d, Sum = %.2f\n",n, sum);           /*  บรรที่�ดที่��  15  */      printf("Average = %.2f", avg);                             /*  บรรที่�ดที่��  16  */      printf("\n\nPress any key back to program..."); /*  บรรที่�ดที่��  17  */      getch();                                                                  /*  บรรที่�ดที่��  18  */}                                                                                    /*  บรรที่�ดที่��  19  */

Page 12: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 13: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม            จำ�กโปรแกรมต�วอย$�ง สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  8  คำ��สั่��ง  while (n < 11)  เพ#�อคำวบคำ�มก�รที่��ง�นของโปรแกรมให้�ที่��ง�นซ้ำ�*� ๆ  ก�น  โดยก�รที่��ง�นของคำ��สั่��ง  while  จำะตรวจำสั่อบเง#�อนไข  n < 11  เป�นจำร/งห้ร#อเที่&จำ  ถ��เป�นจำร/งจำะที่��ง�นต�มคำ��สั่��งที่��อย�$ภ�ยใน  loop  while  คำ#อ  บรรที่�ดที่��  10  แลูะ  11  จำ�กน�*นจำะกลู�บม�ตรวจำสั่อบเง#�อนไขให้ม$  ที่��อย$�งน�*ซ้ำ�*� ๆ  จำนกว$�ตรวจำสั่อบเง#�อนไข  n < 11  เป�นเที่&จำ  จำ'งจำะออกจำ�ก  loop  while  แลู�วไปที่��คำ��สั่��งบรรที่�ดที่��  13  ถ'ง  คำ��สั่��งบรรที่�ดที่��  18บรรท�ดัท��  10  แลูะ  11  เป�นคำ��สั่��งที่��โปรแกรมจำะที่��ง�นภ�ยห้ลู�งจำ�กตรวจำสั่อบเง#�อนไข  while  แลู�วเป�นจำร/ง  น��นคำ#อ  คำ��นวณีคำ$�สั่ะสั่มของต�วแปร  sum  แลูะ  เพ/�มคำ$�  n  ที่�ลูะ  1  ต�มลู��ด�บบรรท�ดัท��  13  ถึ4ง  18  เป�นคำ��สั่��งที่��โปรแกรมจำะที่��ง�นภ�ยห้ลู�งจำ�กตรวจำสั่อบเง#�อนไข  while  แลู�วเป�นเที่&จำ  คำ#อ  ลูดคำ$�ต�วแปร  n  ลูง  1  แลู�วคำ��นวณีคำ$�เฉลู��ยเก&บไว�ที่��ต�วแปร  avg  แลูะพ/มพ1คำ$�ต�วแปร  n, sum  แลูะ  avg  แสั่ดงที่��จำอภ�พ  พร�อมก�บพ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  สั่�ดที่��ยจำะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม     

Page 14: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

3.คำ าสั่��ง  do  while                      do  while  เป�นคำ��สั่��งที่��ม�ก�รที่��ง�นซ้ำ�*� ๆ วนลู�ป  คำลู��ยก�บคำ��สั่��ง while  ม�ก  แตกต�งก�นตรงที่��คำ��สั่��ง  do  while  จำะที่ดสั่อบเง#�อนไขห้ลู�งจำ�กที่��ได�ที่��ง�นต�มคำ��สั่��งภ�ยในลู�ปไปแลู�ว  1  รอบ  จำ�กน�*นจำ'งคำ$อยย�อนกลู�บม�ที่ดสั่อบเง#�อนไขอ�กคำร�*งห้น'�ง  ถ��เง#�อนไขเป�นจำร/งก&จำะที่��ง�นต�มคำ��สั่��งภ�ยในลู�ป  แต$ถ��เง#�อนไขเป�นเที่&จำจำะออกจำ�กคำ��สั่��ง  do  while  ที่�นที่�ร#ปแบบการใช้�คำ าสั่��ง do whiledo{statement(s);}  while  (expression);

*ขี�อคำวรระว�งในการใช้�คำ าสั่��ง  do  whileคำวรระว�งเง#�อนไขของคำ��สั่��ง  do  while  ต�องพ/จำ�รณี�ให้�ด�ว$�ม�ที่�*งกรณี�ที่��เป�นจำร/งแลูะเที่&จำอย�$ห้ร#อไม$  ถ��ม�อย�$ที่� *ง  2  กรณี�  แสั่ดงว$�ใช้�คำ��สั่��งน�*ได�ถ�กต�องต�มไวย�กรณี1ของคำ��สั่��งน�*  ถ��ม�เฉพ�ะกรณี�ที่��เง#�อนไขเป�นจำร/งเที่$�น�*นแสั่ดงว$�เก/ดลู�กษณีะก�รที่��ง�นวนลู�ป (looping)  ไม$ม�ที่�งออกจำ�กคำ��สั่��งน�*  ในที่��นองกลู�บก�นถ��เง#�อนไขเป�นเที่&จำอย$�งเด�ยว  จำะที่��คำ��สั่��ง  do  while  เพ�ยงคำร�*งเด�ยว

Page 15: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ลู�กษณะการท างานขีองคำ าสั่��ง  do  while  สั่�ม�รถเข�ยนเป�นแผนผ�งได�ด�งน�*

Page 16: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+าง แสั่ดงก�รใช้�คำ��สั่��ง  do  while  เพ#�อวนลู�ปแสั่ดง  main  memu  ให้�ผ��ใช้�เลู#อกเมน�  ไปเร#�อย ๆ  จำนกว$�เลู#อกเมน�ที่��  5  ถ'งจำะออกจำ�กโปรแกรม  /*dowhile1.c */                #include<stdio.h>                                                              /*  บรรที่�ดที่��  1  */#include<conio.h>                                                            

/*  บรรที่�ดที่��  2  */void main(void)                                                                   /*  บรรที่�ดที่��  3  */{                                                                                             

/*  บรรที่�ดที่��  4  */char choice;                                                                    

/*  บรรที่�ดที่��  5  */clrscr();                                                                             

/*  บรรที่�ดที่��  6  */do {                                                                                    

/*  บรรที่�ดที่��  7  */printf("\n\n******* MAIN MENU *******\n");      /*  บรรที่�ดที่��  8  */printf("*************************\n\n");               /*  บรรที่�ดที่��  9  */printf("1. Create New File\n");                          /* บรรที่�ดที่�� 10 */printf("2. Use an Old File\n");                           /* บรรที่�ดที่�� 11 */printf("3. Edit data record  in File \n");           /*  บรรที่�ดที่��  12  */printf("4. Append data record in File\n");      /* บรรที่�ดที่�� 13 */printf("5. Exit Program\n");                              /*  บรรที่�ดที่��  14  */printf("Enter your choice(1,2,3,4,5): ");           /*  บรรที่�ดที่��  15  */choice=getche();                                             /*  บรรที่�ดที่��  16  */}while(choice != '5');                                                     

/*  บรรที่�ดที่��  17  */}                                                                                            

/*  บรรที่�ดที่��  18  */

Page 17: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 18: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม           จำ�กโปรแกรมต�วอย$�ง สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  7  คำ��สั่��ง  do  จำะคำวบคำ�มก�รที่��ง�นของโปรแกรม  ให้�ที่��ต�มคำ��สั่��งที่��อย�$ภ�ยใน  loop  do  คำ#อคำ��สั่��งภ�ยในเคำร#�องห้ม�ย  { }  บรรที่�ดที่��  8  ถ'ง  16  ซ้ำ'�งจำะที่��อย$�งน�อย  1  รอบ  ห้ลู�งจำ�กน�*นคำ$อยไปตรวจำสั่อบเง#�อนไข  while  ในบรรที่�ดที่��  17  ถ��เป�นจำร/งจำะกลู�บม�ที่��คำ��สั่��งใน  loop  อ�กคำร�*ง  แต$ถ��เป�นเที่&จำก&จำะออกจำ�กโปรแกรม  แลูะสั่/*นสั่�ดก�รที่��ง�นบรรท�ดัท��  17  คำ��สั่��ง  while (choice!=‘5‘);  จำะตรวจำสั่อบคำ$�ที่��ร �บเข��ม�จำ�กคำ�ย1บอร1ด  ซ้ำ'�งจำะเก&บไว�ในต�วแปร  choice  แลูะคำ$�ที่��ร �บเข��ม�จำะเป�นช้น/ดอ�กขระ  ตรวจำสั่อบว$�ไม$เที่$�ก�บ  ต�วอ�กขระ  5  จำร/งห้ร#อเที่&จำ  (‘5‘  คำว�มห้ม�ยเป�นต�วอ�กขระไม$ใช้$ต�วเลูข  ซ้ำ'�งเวลู�ตรวจำสั่อบเง#�อนไข  ต�วด��เน/นก�รที่�งคำณี/ตศ�สั่ตร1  ข�อม�ลูที่��จำะตรวจำสั่อบต�องเป�นช้น/ดเด�ยวก�น)   ม�เง#�อนไขที่��จำะเป�นเที่&จำอย�$กรณี�เด�ยว  คำ#อ  เต/ม  5  จำะที่��ให้�  ‘5‘ != 5  เป�นเที่&จำ  ก&จำะออกจำ�ก  loop  แลูะจำบก�รที่��ง�น 

Page 19: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

4.คำ าสั่��ง  breakbreak  เป�นคำ��สั่��งที่��สั่� �งให้�ออกจำ�กคำ��สั่��ง for ห้ร#อ while ห้ร#อ

do  while  ห้ร#อคำ��สั่��ง  switchโปรแกรมตั�วอย+าง แสั่ดังการใช้�คำ าสั่��ง break คำวบคำ�$ก�บคำ��สั่��ง for /*         break.c    */    #include<stdio.h>                                             

/*  บรรที่�ดที่�� 1  */#include<conio.h>                                         

/*  บรรที่�ดที่��  2  */void main(void)                                                     

/*  บรรที่�ดที่��  3  */{                                                                               

/*  บรรที่�ดที่��  4  */int j;                                                                         

/*  บรรที่�ดที่��  5  */clrscr();                                                                  

/*  บรรที่�ดที่��  6  */for (j=1; j<=20; j++) {                                            

/*  บรรที่�ดที่��  7  */printf("%d\t",j);                                                       

/*  บรรที่�ดที่��  8  */if (j==10) break;   /*  break when j==10 */                   /*  บรรที่�ดที่��  9  */}  /*  end for  */                                                              /*  บรรที่�ดที่��  10  */printf("\n\nPress any key back to program...");               /*  บรรที่�ดที่��  11  */getch();                                                                   

/*  บรรที่�ดที่��  12  */}                                                                             

/*  บรรที่�ดที่��  13  */

Page 20: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 21: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม           จำ�กโปรแกรมต�วอย$�ง สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  7  คำ��สั่��ง  for (j = 1;  j <=20;  j++)  ต�องก�รให้�โปรแกรมวนที่��ง�นพ/มพ1คำ$�ของต�วแปร  j  ต�*งแต$  1  ถ'ง    โดยแต$ลูะคำ$�ให้�ห้$�งก�น  1  tabบรรท�ดัท��  9  คำ��สั่��ง  if (j == 10)  break;  จำะตรวจำสั่อบคำ$�ต�วแปร  j  ว$�เที่$�ก�บ  10  ห้ร#อไม$  ถ��เที่$�ก�บ  10  ให้�ห้ย�ดก�รที่��ง�น  (break)  แลูะออกจำ�ก  loop  for  ด�งน�*นโปรแกรมน�*จำะไม$ได�พ/มพ1ต�วเลูข  1  ถ'ง  20  เพร�ะพบคำ��สั่��ง  break  แต$จำะพ/มพ1ต�วเลูข  1  ถ'ง  10บรรท�ดัท��  11  แลูะ  12  เป�นคำ��สั่��งที่��จำะที่��ง�นภ�ยห้ลู�งจำ�กตรวจำสั่อบเง#�อนไข  for  ในบรรที่�ดที่��  7  แลู�วได�คำ$�เที่&จำ  น��นคำ#อ  พ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  แลูะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม 

Page 22: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

5.คำ าสั่��ง continues                      continue เป�นคำ��สั่��งที่��สั่� �งให้�กลู�บไปที่��ง�นที่��คำ��สั่��งแรกของลู�ปคำ��สั่��ง for ห้ร#อ while ห้ร#อ do while ที่��ให้�ม�ก�รที่��ง�นในรอบต$อไปโปรแกรมตั�วอย+าง แสั่ดังการใช้�คำ าสั่��ง continue คำวบคำ�$ก�บคำ��สั่��ง for/*continue.c*/#include<stdio.h>                                             

/*  บรรที่�ดที่��  1  */#include<conio.h>                                         

/*  บรรที่�ดที่��  2  */void main(void)                                                

/*  บรรที่�ดที่��  3  */{                                                                        

/*  บรรที่�ดที่��  4  */int j;                                                                   

/*  บรรที่�ดที่��  5  */clrscr();                                                             

/*  บรรที่�ดที่��  6  */for( j=1; j<=20; j++ ){                                       

/*  บรรที่�ดที่��  7  */printf("%d\t",j);                                                 

/*  บรรที่�ดที่��  8  */if (j==5) { j=j+10; continue; }                           

/*  บรรที่�ดที่��  9  */}                                                                        

/*  บรรที่�ดที่��  10  */printf("\n\nPress any key back to program...");  

/*  บรรที่�ดที่��  11  */getch();                                                                

/*  บรรที่�ดที่��  12  */}                                                                                  

/*  บรรที่�ดที่��  13  */

Page 23: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 24: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม           จำ�กโปรแกรมต�วอย$�ง สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  7  คำ��สั่��ง  for (j=1; j<=20; j++)  ต�องก�รให้�โปรแกรมวนที่��ง�นพ/มพ1คำ$�ของต�วแปร  j  ต�*งแต$  1  ถ'ง  20  โดยแต$ลูะคำ$�ให้�ห้$�งก�น  1  tabบรรท�ดัท��  9  คำ��สั่��ง  if (j==5)  {j=j+10; continue;}  จำะตรวจำสั่อบคำ$�ต�วแปร  j  ว$�เที่$�ก�บ  5  ห้ร#อไม$  ถ��เที่$�ก�บ  5  ให้�เพ/�มคำ$�  j  ไป  10  แลู�วกลู�บไปที่��ง�น  (continue)  คำ��สั่��งบรรที่�ดที่��  7  คำ#อ  เพ/�มคำ$�  j  อ�ก  1  เป�น  16  ด�งน�*นโปรแกรมน�*จำะไม$ได�พ/มพ1ต�วเลูข  1  ถ'ง  20  ที่�กต�ว  แต$จำะข��มต�วเลูขช้$วง  6  ถ'ง  15  ไปบรรท�ดัท��  11  แลูะ  12  เป�นคำ��สั่��งที่��จำะที่��ง�นภ�ยห้ลู�งจำ�กตรวจำสั่อบเง#�อนไข  for  ในบรรที่�ดที่��  7  แลู�วได�คำ$�เที่&จำ  น��นคำ#อ  พ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  แลูะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม

Page 25: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งทดัสั่อบเง%�อนไขีเพ%�อการตั�ดัสั่2นใจ (decision  statements)

Page 26: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งทดัสั่อบเง%�อนไขีเพ%�อการตั�ดัสั่2นใจ (decision  statements)            คำ��สั่��งที่ดสั่อบเง#�อนไขเพ#�อก�รต�ดสั่/นใจำ  เป�นคำ��สั่��งที่��ม�ก�รที่ดสั่อบเง#�อนไขก$อนที่��จำะที่��ง�นต�มคำ��สั่��งที่��ก��ห้นดไว�  ซ้ำ'�งได�แก$คำ��สั่��ง  if, if else, โคำรงสั่ร��ง  else  if  (ห้ร#อ  nested  if)  แลูะคำ��สั่��ง  switch            1. คำ าสั่��ง  ifif  เป�นคำ��สั่��งที่��สั่� �งให้�ม�ก�รที่ดสั่อบเง#�อนไขก$อนที่��จำะไปที่��ง�นต�มคำ��สั่��งที่��ก��ห้นดไว�ร#ปแบบการใช้�คำ าสั่��ง  if

if  (expression)  statement; ห้ร#อif  (expression){statement(s);}โดัยท��                expression  คำ%อ  น2พจน/เง%�อนไขี  ซ้ำ4�งจะม�คำ+าจร2งหร%อเท5จอย+างใดัอย+างหน4�งเท+าน��น  ถึ�าเง%�อนไขีเป'นจร2ง  จะท างานตัามคำ าสั่��งท��อย#+ใน  if  จากน��นก5ออกจากคำ าสั่��ง  if  ไปท าคำ าสั่��งถึ�ดัไป  ถึ�าเง%�อนไขีเป'นเท5จจะออกจากคำ าสั่��ง  if  ท�นท�

Page 27: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ลู�กษณีะก�รที่��ง�นของคำ��สั่��ง  if  สั่�ม�รถเข�ยนเป�นแผนผ�งได�ด�งน�*

Page 28: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+างท��  4.12  แสั่ดงก�รใช้�คำ��สั่� �ง  if  เพ#�อตรวจำสั่อบคำ$�ที่��ร�บจำ�กคำ�ย1บอร1ด/*     if1.C.    */#include <stdio.h>                                                                             /*  บรรที่�ดที่��  1  */#include <conio.h>                                                                            /*  บรรที่�ดที่��  2  */#include <ctype.h>                                                                            /*  บรรที่�ดที่��  3  *//*Capitalize Keys read from The Keyboard */                               /*  บรรที่�ดที่��  4  */main()                                                                                                    /*  บรรที่�ดที่��  5  */{                                                                                                        /*  บรรที่�ดที่��  6  */char any_char;                                                                                  /*  บรรที่�ดที่��  7  */clrscr();                                                                                               /*  บรรที่�ดที่��  8  */printf("Please type a lowercase letter : ");                                    /*  บรรที่�ดที่��  9  */   scanf("%c", &any_char);                                                                  /*  บรรที่�ดที่��  10  */  if(any_char >= 'a')                                                                             /*  บรรที่�ดที่��  11  */  printf("In uppercase: %c \n", toupper(any_char));                      /*  บรรที่�ดที่��  12  */  getch();                                                                                       /*  บรรที่�ดที่��  13  */  return(0);                                                                                      /*  บรรที่�ดที่��  14  */}                                                                                                      /*  บรรที่�ดที่��  15  */

Page 29: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 30: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม             จำ�กโปรแกรมต�วอย$�งที่��  4.12  สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  3  #include <ctype.h>  ให้�ก�รสั่น�บสั่น�นฟั8งก1ช้�น  toupper( )  ในบรรที่�ดที่��  12  บรรท�ดัท��  4  เป�นคำ��อธิ/บ�ยโปรแกรมเพ#�อบอกให้�ที่ร�บว$�เป�นโปรแกรมที่��แปลูงต�วอ�กขระที่��ร �บเข��ม�ให้�เป�นต�วพ/มพ1ให้ญ$ บรรท�ดัท��  9  แลูะ  10  พ/มพ1ข�อคำว�มแนะน��ให้�ผ��ใช้�  พ/มพ1ต�วพ/มพ1เลู&ก  แลู�วร�บเข��ม�เก&บไว�ในต�วแปร  any_char  ต�มลู��ด�บบรรท�ดัท��  11  คำ��สั่��ง  if (any_char >= ‘a’)  ตรวจำสั่อบอ�กขระที่��เก&บในต�วแปร  any_char  ที่��ร �บเข��ม�จำ�กคำ�ย1บอร1ด   ว$�ม�คำ$�ม�กกว$�ห้ร#อเที่$�ก�บ  ‘a‘  น��นคำ#อตรวจำสั่อบว$�เป�นต�วพ/มพ1เลู&กห้ร#อไม$  ถ��ใช้$ให้�ไปที่��ง�นคำ��สั่��งบรรที่�ดที่��  12บรรท�ดัท��  12  คำ��สั่��งที่��ให้�ที่��ภ�ยห้ลู�งจำ�กตรวจำสั่อบเง#�อนไข  if  แลู�วได�คำ$�เป�นจำร/ง  คำ#อ  เร�ยกใช้�ฟั8งก1ช้�น  toupper( )  เพ#�อแปลูงต�วพ/มพ1เลู&กที่��เก&บไว�ในต�วแปร  any_char  เป�นต�วพ/มพ1ให้ญ$  คำ#อ  toupper (any_char);  แสั่ดงออกที่��จำอภ�พ  แลู�วห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม   

Page 31: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��ง  if  else            if else เป�นคำ��สั่��งที่��สั่� �งให้�ม�ก�รที่ดสั่อบเง#�อนไข  โดยม�ก�รต�ดสั่/นใจำแบบ 2 ที่�งเลู#อกร#ปแบบการใช้�คำ าสั่��ง  if  else

if  (expression)  { statementA(s);}else  {     statementB(s);}             จำ�กร�ปแบบก�รใช้�คำ��สั่��ง  if  else  ห้ม�ยคำว�มว$�  ถ��น/พจำน1เง#�อนไข (expression)  ม�คำ$�เป�นจำร/งจำะที่��ต�มคำ��สั่��งช้�ด  A  (statementA(s);)  ถ��ม�คำ$�เป�นเที่&จำจำะที่��ต�มคำ��สั่��งช้�ด  B  (statementB(s);)  เม#�อที่��เสั่ร&จำก&ออกจำ�กคำ��สั่��งน�*

Page 32: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ลู�กษณะการท างานขีองคำ าสั่��ง  if  else  สั่�ม�รถเข�ยนเป�นแผนผ�งได�ด�งน�*

Page 33: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+างท��  4.14  แสั่ดงก�รใช้�คำ��สั่��ง  if  else  เพ#�อตรวจำสั่อบคำ$�ที่��ร �บจำ�กคำ�ย1บอร1ด/*             if_else1.c               */#include <stdio.h>                                                                             /*  บรรที่�ดที่��  1  */#include <conio.h>                                                                            /*  บรรที่�ดที่��  2  */#include <ctype.h>                                                                            /*  บรรที่�ดที่��  3  *//*Capitalize Keys read from The Keyboard */                               /*  บรรที่�ดที่��  4  */main()                                                                                                    /*  บรรที่�ดที่��  5  */{                                                                                                           /*  บรรที่�ดที่��  6  */      char any_char;                                                                           /*  บรรที่�ดที่��  7  */      clrscr();                                                                                    /*  บรรที่�ดที่��  8  */      printf("Please type a lowercase letter : ");                                    /*  บรรที่�ดที่��  9  */      scanf("%c",&any_char);                                                          /*  บรรที่�ดที่��  10  */      if(any_char < 'a')                                                                      /*  บรรที่�ดที่��  11  */      printf("Sorry, I can not capitalize that.\n");                      /*  บรรที่�ดที่��  12  */     else                                                                                                 /*  บรรที่�ดที่��  13  */            printf("Thank you. In uppercase : %c.",toupper (any_char)); /*  บรรที่�ดที่��  14  */  printf("\n\nPress any key back to program...");                             /*  บรรที่�ดที่��  15  */  getch();                                                                                        /*  บรรที่�ดที่��  16  */return(0);                                                                                             /*  บรรที่�ดที่��  17  */}                                                                                                         /*  บรรที่�ดที่��  18  */

Page 34: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม            กรณ�ท��เตั2มตั�วอ�กษรพ2มพ/เลู5ก

กรณ�ท��เตั2มตั�วอ�กษรพ2มพ/ใหญ่+

Page 35: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม            จำ�กโปรแกรมต�วอย$�งที่��  4.14  สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  11  แลูะ  12  คำ��สั่��ง  if (any_char < ‘a’)  ตรวจำสั่อบอ�กขระที่��ร �บเข��ม�ว$�ม�คำ$�น�อยกว$�  ‘a’  ห้ร#อไม$  ถ��ใช้$ให้�พ/มพ1ข�อคำว�ม  Sorry, I can not capitalize that.  น��นคำ#อตรวจำสั่อบต�วอ�กขระที่��ร �บเข��ม�ว$�ใช้$ต�วอ�กขระพ/มพ1ให้ญ$ห้ร#อไม$  แต$ถ��ไม$ใช้$  ให้�ไปที่��คำ��สั่��งบรรที่�ดที่��  13  บรรท�ดัท��  13  else  คำ#อ  เง#�อนไขบรรที่�ดที่��  11  เป�นเที่&จำ  (กรณี�ที่��ต�วอ�กขระเป�นต�วพ/มพ1เลู&ก)  ให้�ที่��คำ��สั่��งบรรที่�ดที่��  14  คำ#อ  เปลู��ยนต�วพ/มพ1เลู&กให้�เป�นต�วพ/มพ1ให้ญ$  ด�วยฟั8งก1ช้�น  toupper( )  แลูะ  แสั่ดงออกจำอภ�พบรรท�ดัท��  15  แลูะ  16  พ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  แลูะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม  ต�มลู��ด�บ 

Page 36: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

 คำ าสั่��งโคำรงสั่ร�าง  else  if  (คำ าสั่��ง  nested  if)            else  if  เป�นโคำรงสั่ร��งที่��ที่��ให้�เร�สั่�ม�รถใช้�คำ��สั่��ง  if  else  ซ้ำ�อนก�นได�เร#�อย ๆ สั่$วนม�กจำะใช้�ในก�รต�ดสั่/นใจำที่��ม�กกว$�  2  ที่�งเลู#อกข'*นไป  บ�งคำร�*งอ�จำเร�ยกโคำรงสั่ร��งน�*ว$�  nested  if   ร#ปแบบการใช้�โคำรงสั่ร�าง  nested  if  หร%อ  else  ifelse  if  (expression)  { statementA(s);}else  if  (expression){          statementB(s);}else  if  (expression){            ขี�อคำวรระว�งในการใช้�  nested  ifก�รเข�ยนคำ��สั่��ง  nested  if  คำ$อนข��งย�$งย�ก  อ�จำเก/ดคำว�มสั่�บสั่นได�  คำวรเข�ยนคำ��สั่��ง nested  if  ให้�เย#*องก�นเพ#�อคำว�มสั่ะดวกในก�รแก�ไขคำ��สั่��งในภ�ยห้ลู�ง

Page 37: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+างท��  4.16  แสั่ดงก�รใช้�คำ��สั่��ง  nested if เพ#�อตรวจำสั่อบคำะแนนที่��ผ��ใช้�เต/ม  แลู�วให้�เกรดต�มเง#�อนไขที่��ก��ห้นดในโปรแกรม/*  nestif1.c            */#include<stdio.h>                                                                         /*  บรรที่�ดที่��  1  */#include<conio.h>                                                                     /*  บรรที่�ดที่��  2  */#include<stdlib.h>                                                                      /*  บรรที่�ดที่��  3  */void main(void)                                                                             /*  บรรที่�ดที่��  4  */{                                                                                                  /*  บรรที่�ดที่��  5  */      int score, n, i;                                                                              /*  บรรที่�ดที่��  6  */      char grade;                                                                                /*  บรรที่�ดที่��  7  */      char numstr[20];                                                                         /*  บรรที่�ดที่��  8  */      clrscr( );                                                                   /*  บรรที่�ดที่��  9  */      printf("Enter Number of Students : ");                                         /*  บรรที่�ดที่��  10  */      n = atoi(gets(numstr));                                                                 /*  บรรที่�ดที่��  11  */      for ( i=1; i<=n; i++ ){                                                                     /*  บรรที่�ดที่��  12  */            printf("\nEnter score of student #%d : ", i);                       /*  บรรที่�ดที่��  13  */            score = atoi(gets(numstr));                                                 /*  บรรที่�ดที่��  14  */

Page 38: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

 if ( score >= 80 )                                                /*  บรรที่�ดที่��  15  */                  grade = 'A';                                                   /*  บรรที่�ดที่��  16  */                  else if ( score >= 70 )                                  /*  บรรที่�ดที่��  17  */                        grade = 'B';                                           /*  บรรที่�ดที่��  18  */                  else if ( score >= 60 )                                 /*  บรรที่�ดที่��  19  */                        grade = 'C';                                           /*  บรรที่�ดที่��  20  */                  else if ( score >= 50 )                                /*  บรรที่�ดที่��  21  */                        grade = 'D';                                         /*  บรรที่�ดที่��  22  */                  else  grade = 'F';                                        /*  บรรที่�ดที่��  23  */            printf("Score = %d, Grade of std #%d is %c\n",score,i,grade); /*  บรรที่�ดที่��  24 */} /* end for */                                                              /*  บรรที่�ดที่��  25  */printf("\n\nPress any key back to program...");           /*  บรรที่�ดที่��  26  */getch();                                                                          /*  บรรที่�ดที่��  27  */}                                                                                    /*  บรรที่�ดที่��  28  */

Page 39: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 40: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม            จำ�กโปรแกรมต�วอย$�งที่��  4.16  สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  3  #include <stdlib.h>  สั่น�บสั่น�นก�รใช้�ฟั8งก1ช้�น  atoi( )   ของคำ��สั่��งบรรที่�ดที่��  11บรรท�ดัท��  10 แลูะ  11  ร�บคำ$�ต�วเลูขที่��เป�นจำ��นวนน�กเร�ยน  แลู�วที่��คำ��สั่��ง  n = atoi(gets(numstr));  คำ#อน��คำ$�ที่��ร �บเข��ม�แปลูงให้�เป�นจำ��นวนเต&มแลู�วเก&บไว�ที่��ต�วแปร  nบรรท�ดัท��  12 คำ��สั่��ง  for (i=1; i<=n; i++)  เพ#�อคำวบคำ�มก�รที่��ง�นของโปรแกรมให้�วนรอบที่��ง�นต�มจำ��นวนของต�วเลูขที่��เต/มคำ#อ   n   คำร�*ง  ซ้ำ'�งถ��ตรวจำสั่อบเง#�อนไข  for  แลู�วเป�นจำร/งจำะที่��คำ��สั่��งภ�ยใน  loop for  คำ#อคำ��สั่��งบรรที่�ดที่��  13  ถ'ง  24  แต$ถ��ตรวจำสั่อบเง#�อนไข  for  แลู�วเป�นเที่&จำ  จำะไปที่��คำ��สั่��งบรรที่�ดที่��  26  แลูะ  27บรรท�ดัท��  13  แลูะ  14  ร�บคำ$�คำะแนนที่��ผ��ใช้�เต/ม  แลู�วแปลูงให้�เป�นจำ��นวนเต&มเก&บไว�ที่��ต�วแปร score  ต�มลู��ด�บบรรท�ดัท��  15 คำ��สั่��ง  if ( score >= 80 )  ตรวจำสั่อบเง#�อนไขของต�วแปร score  ว$�ม�กกว$�ห้ร#อเที่$�ก�บ  80  ห้ร#อไม$  ถ��ใช้$ให้�ก��ห้นดต�วแปร  grade  เก&บ  A   แต$ถ��ไม$ใช้$ให้�ไปที่��ง�นคำ��สั่��งบรรที่�ดที่��  17 

Page 41: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

บรรท�ดัท��  17  คำ��สั่��ง  else if ( score >= 70 )    ตรวจำสั่อบเง#�อนไขต$ออ�กว$�ต�วแปร score  ว$�ม�กกว$�ห้ร#อเที่$�ก�บ  70  ห้ร#อไม$  ถ��ใช้$ให้�ก��ห้นดต�วแปร  grade  เก&บ B  แต$ถ��ไม$ใช้$ให้�ไปที่��ง�นคำ��สั่��งบรรที่�ดที่��  19บรรท�ดัท��  19  คำ��สั่��ง  else if ( score >= 60 )    ตรวจำสั่อบเง#�อนไขต$ออ�กว$�ต�วแปร score  ว$�ม�กกว$�ห้ร#อเที่$�ก�บ  60  ห้ร#อไม$  ถ��ใช้$ให้�ก��ห้นดต�วแปร  grade  เก&บ  C แต$ถ��ไม$ใช้$ให้�ไปที่��ง�นคำ��สั่��งบรรที่�ดที่��  21บรรท�ดัท��  21  คำ��สั่��ง  else if ( score >= 50 )    ตรวจำสั่อบเง#�อนไขต$ออ�กว$�ต�วแปร score  ว$�ม�กกว$�ห้ร#อเที่$�ก�บ  50  ห้ร#อไม$  ถ��ใช้$ให้�ก��ห้นดต�วแปร  grade  เก&บ D  แต$ถ��ไม$ใช้$ให้�ไปที่��ง�นคำ��สั่��งบรรที่�ดที่��  23บรรท�ดัท��  23   คำ��สั่��ง  else        grade = ‘F’;  ก��ห้นดต�วแปร  grade  เก&บ  F  บรรท�ดัท�� 24  ภ�ยห้ลู�งจำ�กที่��ง�นที่�กเง#�อนไขแลู�วจำะม�ที่��คำ��สั่��งบรรที่�ดที่��  24  คำ#อ  แสั่ดงคำ$�ต�วแปร  score  ต�วแปร  i  แลูะต�วแปร  grade  ที่��ได�แสั่ดงออกจำอภ�พบรรท�ดัท��  26  แลูะ  27  พ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  สั่�ดที่��ยจำะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม  ต�มลู��ด�บ 

Page 42: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��ง  switch            switch  เป�นคำ��สั่��งที่��ใช้�ที่ดสั่อบเง#�อนไขในกรณี�ที่��ม�ที่�งเลู#อกสั่��ห้ร�บต�ดสั่/นใจำม�กกว$�  2  ที่�งข'*นไปเช้$นเด�ยวก�นก�บ  nested  if  โดยม�กน/ยมใช้�คำ��สั่��ง  switch  แที่นคำ��สั่��ง  nested  if  เพร�ะม�ร�ปแบบก�รใช้�คำ��สั่��งที่��ง$�ยแลูะสั่ะดวกในก�รแก�ไขคำ��สั่��งเม#�อม�ข�อผ/ดพลู�ดเก/ดข'*นร#ปแบบการใช้�คำ าสั่��ง  switch

switch  (expression) {case  expression1:statement(s);  break;case  expression2:statement(s);  break;…..case  expressionN:statement(s);  break;default:statement(s);}

Page 43: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โดยที่��    expression  คำ#อ  น/พจำน1  ห้ร#อต�วแปรที่��จำะใช้�เปร�ยบเที่�ยบก�บน/พจำน1  expression1, expression2, …, expressionN  ว$�ม�คำ$�ตรงก�บน/พจำน1ใดexpression1, expression2, …, expressionN  คำ#อ  น/พจำน1  ห้ร#อคำ$�คำงที่��ในเง#�อนไขที่��  1, 2, 3, …, N  ต�มลู��ด�บbreak  คำ#อ  คำ��สั่��งที่��จำะต�องใสั่$ไว�ในแต$ลูะ  case  เพ#�อเป�นก�รบอกให้�ออกจำ�กคำ��สั่��ง  switch  ห้ลู�งจำ�กที่��คำ��สั่��งที่��อย�$ใน  case  น�*น ๆ แลู�ว  ถ��ห้�กไม$ม�คำ��สั่��ง  break  ใน  case  ใด  เม#�อที่��ง�นจำบ  case  น�*นแลู�ว  จำะที่��ง�นใน  case  ถ�ดไปจำนกว$�จำะเจำอคำ��สั่��ง  break  ซ้ำ'�งที่��ให้�เก/ดก�รที่��ง�นผ/ดพลู�ดได�default  คำ#อ  กรณี�ที่��  expression  ไม$ตรงก�บเง#�อนไขใด ๆ เลูย  ให้�ที่��ง�นต�มคำ��สั่��งที่��เข�ยนไว�ใน  default  โดย  default  น�*ไม$จำ��เป�นต�องใสั่$คำ��สั่��ง  break  เอ�ไว�  เพร�ะ  default  เป�นกรณี�สั่�ดที่��ยของคำ��สั่��ง  switch  ขี�อคำวรระว�งในการใช้�คำ าสั่��ง  switch   1) ถ��ใช้�คำ��สั่��ง  switch  ในแต$ลูะกรณี�  (case)  จำะต�องใสั่$คำ��สั่��ง  break  เอ�ไว�ด�วยม/ฉะน�*นจำะเก/ดก�รที่��ง�นซ้ำ�*�ใน  case  ต$อม�จำนกว$�จำะเจำอคำ��สั่��ง  break  ยกเว�นกรณี�  default  ไม$ต�องใสั่$คำ��สั่��ง  break            2) expression  ที่��อย�$ห้ลู�งคำ��สั่��ง  switch  คำวรใช้�เป�นต�วแปร เพ#�อจำะได�สั่ะดวกในก�รน��ไปเปร�ยบเที่�ยบก�บกรณี�ต$�ง ๆ สั่$วน  expression1, expression2, …, expressionN  ที่��อย�$ห้ลู�ง case  ต$�ง ๆ คำวรใช้�เป�นคำ$�คำงที่�� 

Page 44: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+างท��  4.18  แสั่ดงก�รใช้�คำ��สั่��ง  switch  เพ#�อตรวจำสั่อบเกรดที่��ผ��ใช้�เต/ม  ว$�ตรงก�บกรณี�ใด  แลู�วแสั่ดงเกรดที่��เป�นต�วเลูขออกจำอภ�พ/*             switch.c                 */#include<stdio.h>                                                                      /*  บรรที่�ดที่��  1  */#include<conio.h>                                                                     /*  บรรที่�ดที่��  2  */#include<stdlib.h>                                                                       /*  บรรที่�ดที่��  3  */#include<ctype.h>                                                                      /*  บรรที่�ดที่��  4  */void main(void)                                                                              /*  บรรที่�ดที่��  5  */{                                                                                                   /*  บรรที่�ดที่��  6  */      int  n, i;                                                                                         /*  บรรที่�ดที่��  7  */      float  gradepoint;                                                                           /*  บรรที่�ดที่��  8  */      char grade;                                                                                    /*  บรรที่�ดที่��  9  */      char numstr[20];                                                                           /*  บรรที่�ดที่��  10  */      clrscr( );                                                                                       /*  บรรที่�ดที่��  11  */      printf("Enter Number of Students : ");                                           /*  บรรที่�ดที่��  12  */      n = atoi(gets(numstr)) ;                                                                  /*  บรรที่�ดที่��  13  */      for ( i=1; i<=n; i++ ) {                                                                    /*  บรรที่�ดที่��  14  */            printf("\nEnter grade of student #%d: ", i);                               /*  บรรที่�ดที่��  15  */            grade = getche( );                                                                    /*  บรรที่�ดที่��  16  */

Page 45: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

 switch(toupper(grade)) {                                                           /*  บรรที่�ดที่��  17  */                  case 'A':                                                                            /*  บรรที่�ดที่��  18  */                        gradepoint = 4.0; break;                                   /*  บรรที่�ดที่��  19  */                  case 'B':                                                                  /*  บรรที่�ดที่��  20  */                        gradepoint = 3.0; break;                                   /*  บรรที่�ดที่��  21  */                  case 'C':                                                                    /*  บรรที่�ดที่��  22  */                        gradepoint = 2.0; break;                                   /*  บรรที่�ดที่��  23  */                  case 'D':                                                                  /*  บรรที่�ดที่��  24  */                        gradepoint = 1.0; break;                                   /*  บรรที่�ดที่��  25  */                  default:  gradepoint = 0.0;                                        /*  บรรที่�ดที่��  26  */            } /* end switch */                                                         /*  บรรที่�ดที่��  27  */            printf("\nGrade Point of Student#%d is %.2f\n",i,gradepoint);  /*  บรรที่�ดที่��  28  */      } /* end for */                                                                        /*  บรรที่�ดที่��  29  */printf("\n\nPress any key back to program...");                              /*  บรรที่�ดที่��  30  */getch();                                                                                           /*  บรรที่�ดที่��  31  */}  /* end main */                                                                              /*  บรรที่�ดที่��  32  */

Page 46: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 47: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าอธ์2บายโปรแกรม            จำ�กโปรแกรมต�วอย$�งที่��  4.18  สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  12  แลูะ  13  ให้�ผ��ใช้�เต/มจำ��นวนน�กเร�ยน  แลู�วน��คำ$�ที่��ผ��ใช้�เต/มม�แปลูงให้�เป�นจำ��นวนเต&ม  แลู�วเก&บไว�ที่��ต�วแปร  nบรรท�ดัท��  14  for (i = 1;  i < n;  i++)  คำ��สั่��งคำวบคำ�มก�รที่��ง�นของโปรแกรมให้�วนที่��ง�นจำ��นวนรอบเที่$�ก�บต�วแปร  n  ห้ร#อคำ$�ต�วเลูขที่��ผ��ใช้�เต/ม  เม#�อที่ดสั่อบเง#�อนไข  for  แลู�วเป�นจำร/ง  จำะที่��ง�นต�มคำ��สั่��งใน  loop for  คำ#อ  คำ��สั่��งบรรที่�ดที่��  15  ถ'ง  29  แต$ถ��เป�นเที่&จำ  จำะไปที่��ง�นต�มคำ��สั่��งบรรที่�ดที่��  30  แลูะ  31บรรท�ดัท��  15  แลูะ  16  ให้�ผ��ใช้�เต/มเกรดแลู�วเก&บไว�ที่��ต�วแปร  gradeบรรท�ดัท��  28  ภ�ยห้ลู�งจำ�กก�รที่��ง�นที่�กกรณี�ของคำ��สั่��ง  switch  แลู�ว  จำะที่��คำ��สั่��งบรรที่�ดที่��  28  คำ#อ  แสั่ดงคำ$�ต�วแปร  gradepoint  ที่��ได�ของแต$ลูะคำน  แสั่ดงที่��จำอภ�พบรรท�ดัท��  30  แลูะ  31   พ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  สั่�ดที่��ยจำะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม  ต�มลู��ด�บ          

Page 48: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

บรรท�ดัท��  17  ถึ4ง  27  เป�น  loop  ของ  คำ��สั่��ง  switch  ซ้ำ'�งที่��ง�นซ้ำ�อนภ�ยใน  loop  for  ด�งน�*  จำ�กต�วแปรเกรดที่��ร �บเข��จำะแปลูงให้�เป�นต�วพ/มพ1ให้ญ$ที่�กคำร�*ง  เพ#�อน��ไปที่ดสั่อบที่�กกรณี�ของคำ��สั่��ง  switch  เร/�มตรวจำสั่อบกรณี�แรก  คำ#อ  ที่ดสั่อบว$�เป�นต�ว  A  ห้ร#อไม$  ถ��ใช้$  ก��ห้นดต�วแปร  gradepoint  ม�คำ$�เที่$�ก�บ  4.0  แลู�วห้ย�ดก�รที่��ง�นในกรณี�น�*  (break)  แต$ถ��ไม$ใช้$ต�ว  A  ก&ไปตรวจำสั่อบกรณี�ถ�ดไป  คำ#อ  ใช้$ต�ว  B  ห้ร#อไม$  ถ��ใช้$  ก��ห้นดต�วแปร  gradepoint  ม�คำ$�เที่$�ก�บ  3.0  แลู�วห้ย�ดก�รที่��ง�นในกรณี�น�*  (break)  แต$ถ��ไม$ใช้$ต�ว  B  ก&ไปตรวจำสั่อบกรณี�ถ�ดไป  คำ#อ  ใช้$ต�ว  C  ห้ร#อไม$  ถ��ใช้$  ก��ห้นดต�วแปร  gradepoint  ม�คำ$�เที่$�ก�บ  2.0  แลู�วห้ย�ดก�รที่��ง�นในกรณี�น�*  (break)  แต$ถ��ไม$ใช้$ต�ว  C  ก&ไปตรวจำสั่อบกรณี�ถ�ดไป  คำ#อ  ใช้$ต�ว  D  ห้ร#อไม$  ถ��ใช้$  ก��ห้นดต�วแปร  gradepoint  ม�คำ$�เที่$�ก�บ  1.0  แลู�วห้ย�ดก�รที่��ง�นในกรณี�น�*  (break)  กรณี�สั่�ดที่��ย  คำ#อ  กรณี�ที่��เต/มต�วอ#�นที่��ไม$ใช้$ที่�*ง  4  กรณี�ข��งต�น  จำะที่��คำ��สั่��งบรรที่�ดที่��  26  คำ#อ  default;  gradepoint = 0.0;  คำ#อ  กรณี�อ#�น ๆ  ให้�ก��ห้นดต�วแปร  gradepoint  ม�คำ$�เที่$�ก�บ  0.0

Page 49: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งท��สั่��งให�ไปท างานตัามจ�ดัท��ก าหนดัให�   (goto  statements)

Page 50: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

คำ าสั่��งท��สั่��งให�ไปท างานตัามจ�ดัท��ก าหนดัไว� (goto  statements)            คำ��สั่��งที่��สั่� �งให้�ไปที่��ง�นต�มจำ�ดที่��ก��ห้นดไว�  สั่$วนม�กเร�ไม$น/ยมใช้�ก�นเพร�ะที่��ให้�ก�รตรวจำสั่อบก�รที่��ง�นของโปรแกรมที่��ได�ย�กข'*น  เน#�องจำ�กก�รใช้�คำ��สั่��ง  goto  แลูะ  label  ที่��ให้�ก�รที่��ง�นของโปรแกรมม�ลู�กษณีะกระโดดไปที่��ง�นต�มจำ�ดที่��ก��ห้นดไว�  ที่��ให้�ก�รที่��ง�นของโปรแกรมไม$ได�ที่��ง�นจำ�กด��นบนลูงม�ด��นลู$�งอ�จำเก/ดคำว�มสั่�บสั่นในก�รที่��ง�นของโปรแกรมได�            4.3.1 คำ าสั่��ง  goto  แลูะ  label                        goto  เป�นคำ��สั่��งที่��สั่� �งให้�ไปที่��ง�น ณี  จำ�ดที่��เร�ก��ห้นด  โดยจำะต�องต�*งเป�นช้#�อ  label  ไว�            ร#ปแบบการใช้�คำ าสั่��ง  goto  แลูะ   label

goto  labelname;แลูะlabelname:

Page 51: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โดยที่��            labelname  คำ#อ  ช้#�อ  label  ที่��ต�*งข'*นเพ#�อให้�โปรแกรมที่��ง�น

หมายเหตั�              คำวรห้ลู�กเลู��ยงก�รใช้�คำ��สั่��ง  goto  แลูะ  label  เพร�ะจำะที่��ให้�โปรแกรมย��ยไปที่��ง�นในต��แห้น$งต$�ง ๆ ที่��ให้�เก/ดคำว�มสั่�บสั่นในก�รตรวจำสั่อบก�รที่��ง�นของโปรแกรมได�            เพ#�อคำว�มเข��ใจำก�รใช้�คำ��สั่��ง  goto  แลูะ  label  ม�กย/�งข'*นคำวรศ'กษ�โปรแกรมต�วอย$�งต$อไปน�*

Page 52: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

โปรแกรมตั�วอย+างท��  4.19  แสั่ดงก�รใช้�คำ��สั่��ง  goto  แลูะ  label  เพ#�อก��ห้นดให้�โปรแกรมที่��ง�นต�มช้#�อ  label  ที่��ก��ห้นด/*        gotolabe.c            */#include<stdio.h>                                                                          /*  บรรที่�ดที่��  1  */#include<conio.h>                                                                         /*  บรรที่�ดที่��  2  */void main(void)                                                                               /*  บรรที่�ดที่��  3  */{                                                                                                       /*  บรรที่�ดที่��  4  */      int i, j, k;                                                                              

/*  บรรที่�ดที่��  5  */      j = i = 2 ;                                                                            

/*  บรรที่�ดที่��  6  */      clrscr( );                                                                              /*  บรรที่�ดที่��  7  */      loop:  k = i*j;                                                                      /*  บรรที่�ดที่��  8  */            printf("%d\t %d\t %d\n", j, i++, k);                  

/*  บรรที่�ดที่��  9  */            if (i<7)                                                                 

/*  บรรที่�ดที่��  10  */                  goto loop;                                            

/*  บรรที่�ดที่��  11  */            else                                                                     

/*  บรรที่�ดที่��  12  */                  goto quit;                                              

/*  บรรที่�ดที่��  13  */      quit:  printf("\nThank You !");                                           /*  บรรที่�ดที่��  14  */      printf("\n\nPress any key back to program...");            /*  บรรที่�ดที่��  15  */      getch();                                                                               /*  บรรที่�ดที่��  16  */} /* end main */                                                                              

/*  บรรที่�ดที่��  17  */

Page 53: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

ผลูลู�พธ์/ท��ไดั�จากโปรแกรม

Page 54: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

 คำ าอธ์2บายโปรแกรม            จำ�กโปรแกรมต�วอย$�งที่��  4.19  สั่�ม�รถอธิ/บ�ยก�รที่��ง�นของโปรแกรมที่��สั่��คำ�ญ ๆ ได�ด�งน�*บรรท�ดัท��  8  แลูะ  14  คำ��สั่��ง  loop :  แลูะ  quit :  คำ#อ  ก�รก��ห้นดช้#�อ  label  ช้#�อว$�  loop  แลูะ  quit  ต�มลู��ด�บบรรท�ดัท��  11  คำ��สั่��ง  goto  loop;  เพ#�อก��ห้นดให้�โปรแกรมไปที่��ง�นย�ง  label  ที่��ช้#�อว$�  loop  ในกรณี�ที่��คำ��สั่��ง  if (i < 7)  ในบรรที่�ดที่��  10  เป�นจำร/ง  แต$ถ��เป�นเที่&จำ  จำะไปที่��คำ��สั่��งบรรที่�ดที่��  12  แลูะ  13บรรท�ดัท��  12  แลูะ  13 ในกรณี�ที่��คำ��สั่��ง  if  บรรที่�ดที่��  10  เป�นเที่&จำจำะม�ที่��ง�นที่��คำ��สั่��งบรรที่�ดที่��  13  คำ#อ  goto quit;  เป�นก�รก��ห้นดให้�โปรแกรมไปที่��ง�นย�ง  label  ที่��ช้#�อว$�  quitบรรท�ดัท��  14  คำ��สั่��ง  quit : printf (“ \n  Thank You ! “);  คำ#อ  label  ที่��ม�ช้#�อ  quit  ซ้ำ'�ง  label  น�*จำะพ/มพ1คำ��ว$�  Thank You !  แสั่ดงที่��จำอภ�พบรรท�ดัท��  15  แลูะ  16  ภ�ยห้ลู�งจำ�กที่��ง�นข��งต�นที่��กลู$�วม�แลู�ว  โปรแกรมจำะพ/มพ1ข�อคำว�มให้�กดคำ�ย1ใด ๆ  เพ#�อกลู�บสั่�$โปรแกรม  สั่�ดที่��ยจำะห้ย�ดรอร�บคำ$�ใด ๆ  จำ�กคำ�ย1บอร1ด  เช้$น  ถ��กด  enter  ก&จำะกลู�บสั่�$โปรแกรม  ต�มลู��ด�บ       

Page 55: การเขียนคำสั่งควบคุมแบบวนซ้ำ ppt

สั่ม�ช้/ก น�ยป;ต/พงษ1 ปลู�บ�ตร เลูขที่�� 10 น�งสั่�วร� $งที่/ว� ผด�งพ�ฒนด/ษฐ์1

เลูขที่�� 20 น�งสั่�วจำณี/สั่ต� ลู/*มที่อง

เลูขที่�� 30 น�งสั่�วจำ�นที่ร� แสั่งสั่�ร/ย�อ�ที่�ย

เลูขที่�� 31 น�งสั่�วน/ศ�ช้ลู ไที่ยพ�ที่ร� เลูขที่�� 33 น�งสั่�วอ�ร/ษ� ง�มข��

เลูขที่�� 37 ช้� *นม�ธิยมศ'กษ�ป>ที่�� 6/1