คำสั่งควบคุม (Control Statements)
การควบคุมการไหลของโปรแกรม คำสั่งกำหนดเงื่อนไข โครงสร้าง if โครงสร้าง if…else โครงสร้าง if แบบหลายเงื่อนไข โครงสร้าง switch-case คำสั่งวนซ้ำ โครงสร้าง while loop โครงสร้าง do…while loop โครงสร้าง for loop 2
โครงสร้าง if ส่วนของ condition (เงื่อนไข) ตีความเป็นข้อมูลแบบ int { statement1; : statementN; } C Syntax START END Statement condition true false Flowchart ส่วนของ condition (เงื่อนไข) ตีความเป็นข้อมูลแบบ int ทำคำสั่งใน {} หาก condition เป็นจริง (ไม่เป็นศูนย์) หากมีคำสั่งเดียวไม่จำเป็นต้องใช้วงเล็บปีกกา 3
ตัวอย่าง if #include <stdio.h> main() { int i=101,j=100; if(i>j) printf("I > J"); getch(); } if.cpp I > J 4
โครงสร้าง if…else if (condition) { statementt1; statementt2; } else Flowchart C Syntax START END Statementf1 condition true false Statementt1 Statementf2 Statementt2 if (condition) { statementt1; statementt2; } else statementf1; statementf2; 5
ตัวอย่าง if…else I <= J if_else.cpp #include <stdio.h> main() { int i=101,j=102; if(i>j) printf("I > J"); else printf("I <= J"); getch(); } if_else.cpp I <= J 6
โครงสร้าง if แบบหลายเงื่อนไข if (x==1) Action1; else if (x==2) Action2; else if (x==3) Action3; else if (x==4) Action4; else Default_Action; false Action1; x==1 Action2; x==2 Action3; x==3 Action4; x==4 true Default_Action; 7
ตัวอย่าง if แบบหลายเงื่อนไข #include <stdio.h> main() { int i=7; if(i>7) printf("> 7"); else if(i>6) printf("> 6"); else if(i>5) printf("i> 5"); else printf("1 , 2 , 3"); getch(); } ifelse2.cpp > 6 8
โครงสร้าง switch-case switch (x) { case 1: Action1; break; case 2: Action2; case 3: Action3; case 4: Action4; default: Default_Action; } false Action1; x==1 Action2; x==2 Action3; x==3 Action4; x==4 true Default_Action; 9
ตัวอย่าง switch-case 2 switch1.cpp #include <stdio.h> main() { int i=2; switch(i) case 2 : printf("2"); break; case 1 : printf("1"); default : printf("NO MATCH"); } getch(); switch1.cpp 2 10
การกำหนดค่าตัวนับ i++ = i = i+1 i-- = i = i-1 i+=5 = i = i+5 ตัวอย่าง i++ = i = i+1 i-- = i = i-1 i+=5 = i = i+5 i-=5 = i = i-5
โครงสร้าง while ลูป while (condition) { stmt1; stmt2; : stmtN; } START condition false true Statement วนทำคำสั่ง stmt1 ถึง stmtN ตราบเท่าที่ condition เป็นจริง END 12
ลูปวนนับ (Counting Loop) หากพิจารณาโครงสร้างของลูปที่ใช้ในโปรแกรมส่วนใหญ่ มักจะเป็นลูปแบบวนนับ ลูปวนนับจะมีส่วนประกอบดังตัวอย่างต่อไปนี้เสมอ ตัวแปรที่ใช้นับ int i, sum = 0; i = 1; while (i <= 10) { sum = sum + i; i = i + 1; } printf("Sum = %d\n", sum); ส่วนกำหนดค่าเริ่มต้น คำสั่งที่ถูกทำซ้ำ เงื่อนไขของตัวนับ การปรับค่าตัวนับ 13
ตัวอย่างโครงสร้าง while ลูป #include <stdio.h> int main() { int i=1; while(i<=10) printf("Hello %d\n",i); i++; } getch(); while1.cpp Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9 Hello 10 14
โครงสร้าง while ลูป(INFINITY LOOP) #include <stdio.h> int main() { int i=1; while(1) printf("Hello %d\n",i); if(i==10) break; i++; } getch(); while2.cpp Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9 Hello 10 15
โครงสร้าง do…while ลูป { stmt1; stmt2; : stmtN; } while (condition); START true Statement1 StatementN ทำคำสั่ง stmt1...stmtN และวนทำซ้ำอีกตราบเท่าที่ condition ยังคงเป็นจริง นั่นคือ stmt1...stmtN จะถูกกระทำอย่างน้อยหนึ่งครั้ง condition false END 16
ตัวอย่าง do…while ลูป do_while1.cpp #include <stdio.h> int main() { int i=1; do printf("Hello %d\n",i); i++; } while(i<=10); getch(); do_while1.cpp Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9 Hello 10 17
โครงสร้าง for ลูป เป็นโครงสร้างที่ให้ความสะดวกในการเขียนลูปวนนับ การทำงาน 1. ทำคำสั่ง init_stmt หนึ่งครั้ง 2. ถ้า condition เป็นจริง ทำคำสั่ง statement1...statementN 3. ทำคำสั่ง update_stmt จากนั้นกลับไปทำข้อ 2 for (init_stmt; condition; update_stmt) { statement1; statement2; : statementN; } 18
การทำงานของ for ลูป START init_stmt false condition true Statement1 for (init_stmt; condition; update_stmt) { statement1; statement2; : statementN; } condition false true Statement1 StatementN update_stmt END 19
ตัวอย่าง for ลูป for1.cpp #include <stdio.h> int main() { int i; for(i=1;i<=10;i++) printf("Hello %d",i); printf("\n"); } getch(); return 0; for1.cpp Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9 Hello 10 20