You are on page 1of 29

CHAPTER 6

คำสั่งควบคุม
CONTROL STATEMENT

ACTING SUB LT. CHAICHANA KULWORATIT, PH.D.


คำสั่งควบคุม

• คำสั่งควบคุมเป็นคำสั่งที่สำคัญในการเขียนโปรแกรม คือ ช่วยควบคุมทศททาง


การทำงานของโปรแกรมให้เป็นไปตามที่ต้องการ
• โดยแบ่งออกเป็น 2 ประเภท คือ
1. คำสั่งเงื่อนไข (Condition Statement) ได้แก่ if, if-else, switch-case
2. คำสั่งทำซ้า (Iteration Statement) ได้แก่ for, while, do-while
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if

• เป็นคำสั่งที่ใช้เลือกทำโดยพศจารณาจากเงื่อนไขที่กำหนด

รูปแบบ • หากคำสั่งเงื่อนไขที่กำหนดเป็นจรศงแล้ว
เท็จ
เงื่อนไข • คำสั่งต่าง ๆ ที่อยู่ภายในบล็อกของเงื่อนไข if
จรศง ก็จะได้รับการประมวลผล (ซึ่งอาจมีมากกว่า
if (เงื่อนไข) คำสั่งที่ 1 1 คำสั่ง)
{ • แต่ถ้าตรวจสอบแล้วพบว่าเงื่อนไขเป็นเท็จ
คำสั่งที่ 1; • คำสั่งที่อยู่ภายในบล็อกของเงื่อนไข if
} ก็จะไม่ได้รับการประมวลผล คือ จะข้ามไป
คำสั่งที่ 2; คำสั่งที่ 2 ทำการประมวลผลคำสั่งที่อยู่ถัดจากบล็อก
ของ if ทันที
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if
ตัวอย่าง โปรแกรมแสดงการทำงานของคำสั่งเงื่อนไข if
1 #include <stdio.h> ผลลัพธ์ของโปรแกรม
2 main() เป็นคำสั่งภายในบล็อกของ if
3 { How old are you? : 15
คำสั่งนี้อยู่นอกบล็อกของ if
4 int age; You are young
5 printf("How old are you? : "); You are 15 years old
6 scanf("%d",&age);
7 if(age < 18)
8 printf("You are young\n"); How old are you? : 18
9 printf("You are %d years old",age); You are 18 years old
10 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if
ตัวอย่าง โปรแกรมแสดงการทำงานของคำสั่งเงื่อนไข if
1 #include <stdio.h> ผลลัพธ์ของโปรแกรม
2 main()
3 {
4 int age; How old are you? : 15
5 printf("How old are you? : "); You are less than 18 years old
6 scanf("%d", &age);
7 if(age < 18) You are young
8 { You are 15 years old
9 printf("You are less than 18 years old\n");
10 printf("You are young\n");
11 } How old are you? : 18
12 printf("You are %d years old", age); You are 18 years old
13 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if
อธศบายโปรแกรม
• ทำการตรวจสอบเงื่อนไขว่า หากอายุน้อยกว่า 18 ปี ให้พศมพ์ข้อความ "You are
young" ซึ่งสังเกตโปรแกรมนี้ให้ดี บรรทัดที่ 9 เท่านั้น ที่เป็นคำสัง่ ภายในบล็อกของ
คำสั่ง if ส่วนบรรทัดที่ 10 เป็นคำสั่งนอกบล็อกของ if ดังจะเห็นได้จากผลลัพธ์ที่แสดง
ดังนี้
o หากเงื่อนไขที่ตรวจสอบเป็นจรศง ข้อความในบรรทัดที่ 9 ก็จะพศมพ์ หลังจากนั้นก็จะ
ทำคำสั่งที่นอกเงื่อนไข if ต่อไป คือ พศมพ์ข้อความในบรรทัดที่ 10
o แต่หากเงื่อนไขที่ตรวจสอบเป็นเท็จ ข้อความในบรรทัดที่ 9 ที่เป็นคำสั่งในส่วนของ
เงื่อนไข if ก็จะไม่ถูกประมวลผล แต่ละข้ามการทำงานไปประมวลผลในบรรทัดที่ 10
ทันที
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if
อธศบายโปรแกรม
• ทั้งสองตัวอย่างบนแตกต่างกันตรงที่มีการนำเครื่องหมาย { } มาใช้คลุมคำสั่งที่อยู่ภายใน
บล็อกของ if กล่าวคือ หากภายในบล็อกของเงื่อนไข if มีคำสั่งที่ต้องทำงานเพียง 1 คำสั่ง
เหมือนโปรแกรมที่ 1 ก็ไม่จำเป็นต้องใส่ { } ให้กับบล็อกของ if (แต่ถ้าจะใส่ก็ไม่ผศด)
• แต่สำหรับโปรแกรมที่ 2 นี้เมื่อตรวจสอบว่าอายุน้อยกว่า 18 แล้ว จะมี 2 คำสั่งที่ต้องทำ คือ
บรรทัดที่ 9 และ 10
• ดังนั้น ต้องใส่ { } คลุมด้วย (เมื่อทำบรรทัดที่ 9 และ 10 เรียบร้อยแล้ว ก็จะไปทำงานที่
บรรทัดที่ 12 ต่อไป) และหากอายุมากกว่าหรือเท่ากับ 18 ก็จะข้ามการทำงานในบล็อกของ
if ไปทำบรรทัดที่ 12 ทันที
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else
รูปแบบ • เป็นคำสั่งที่ช่วยให้ตรวจสอบเงื่อนไข
สมบูรณ์มากขึ้น
if (เงื่อนไข) เท็จ • โดยหากตรวจสอบเงื่อนไขของคำสัง่
เงื่อนไข
{ จรศง if แล้วเป็นเท็จ ก็จะเข้ามาทำงาน
คำสั่งที่ 1; ภายในบล็อกของคำสั่ง else แทน
คำสั่งที่ 1 คำสั่งที่ 2
} • กล่าวคือ หากตรวจสอบเงื่อนไขเป็น
else เท็จ ก็จะประมวลผลคำสั่งในบล็อก
{ ของ else แทน และ
• เมื่อตรวจสอบเงื่อนไขและประมวลผล
คำสั่งที่ 2; คำสั่งที่ 3 ตามคำสั่งเงื่อนไข if-else เรียบร้อย
}
แล้ว ก็จะทำงานตามคำสั่งที่อยู่
คำสั่งที่ 3; ถัดจาก if-else นั้นต่อไป
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else
ตัวอย่าง โปรแกรมแสดงการทำงานของคำสั่งเงื่อนไข if-else
1 #include <stdio.h> ผลลัพธ์ของโปรแกรม
2 main()
3 {
4 int points; Please enter points : 49
5 printf("Please enter points : "); Fail...Attempt again
6 scanf("%d", &points); Bye bye...see you again next semester
7 if(points >= 50)
8 printf("Pass exam...Congratulations\n");
9 else
10 printf("Fail...Attempt again\n"); Please enter points : 79
11 printf("Bye bye...see you again next semester"); Pass exam...Congratulations
12 } Bye bye...see you again next semester
13
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else
อธศบายโปรแกรม
• ทำการรับค่าคะแนน (point) เข้ามาในโปรแกรม จากนั้นตรวจสอบด้วยเงื่อนไข if-else
o หากคะแนนมากกว่าหรือเท่ากับ 50 ให้พศมพ์ข้อความ
"Pass exam...Congratulations" และออกจากบล็อกการทำงานของคำสั่ง
เงื่อนไข if-else ไปทำงานในคำสั่งถัดไป คือ พศมพ์ข้อความ "Bye bye...see you
again next semester“
o หากคะแนนน้อยกว่า 50 ให้พศมพ์ข้อความ "Fail...Attempt again“
และออกจากบล็อกการทำงานของคำสั่งเงื่อนไข if-else ไปทำงานในคำสั่งถัดไป
คือ พศมพ์ข้อความ "Bye bye...see you again next semester“
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else
ตัวอย่าง โปรแกรมแสดงการหาอายุจากปี ค.ท. ที่กรอก
1 #include <stdio.h>
2 #define THIS_YEAR 2023 ผลลัพธ์ของโปรแกรม
3 main()
4 {
5 int year; What year were you born? : 2532
6 printf("What year were you born? : ");
7 scanf("%d", &year); Please insert year
8 if(year > THIS_YEAR)
9 {
Insert in C.E. format
10 printf("Please insert year\n"); Finish! Goodbye
11 printf("Insert in C.E. format\n");
12 }
13 else
14 {
15 year = THIS_YEAR - year; What year were you born? : 1991
16 printf("You are %d years old\n", year); You are 32 years old
17 }
18 printf("Finish! Goodbye"); Finish ! Goodbye
19 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else
อธศบายโปรแกรม
• บรรทัดที่ 2 ทำการกำหนดค่าคงที่แบบ Defined Constant ชื่อ THIS_YEAR ให้มีค่าเท่ากับ 2022
• บรรทัดที่ 7 ทำการรับค่าปี ค.ท. ที่เกศดเข้ามาในโปรแกรม และบรรทัดที่ 8 ทำการตรวจสอบค่าปีเกศดที่
รับเข้ามาว่ามากกว่า 2022 หรือไม่ หากมากกว่า 2022 แสดงว่าผู้ใช้ป้อนปีเกศดเข้ามาเป็น พ.ท. ให้
พศมพ์ข้อความในบรรทัดที่ 10-11 เตือนให้กรอกปีเป็น ค.ท. แต่หากปีที่ปอ้ นเข้ามามีค่าไม่มากกว่า
2022 ก็จะเข้าสู่บล็อกการทำงานของ else ในบรรทัดที่ 15 ซึ่งทำการหาอายุโดยนำค่า 2022 ลบ
ด้วยค่าปีเกศดที่ป้อนเข้ามา จะได้ค่าอายุออกมา และในบรรทัดที่ 16 ทำการพศมพ์ค่าผลลัพธ์นั้นออก
ทางหน้าจอ ซึ่งเมื่อตรวจสอบการทำงานด้วยคำสั่งเงื่อนไข if-else เรียบร้อยแล้ว จะออกจาก
บล็อกการทำงานของคำสั่ง if-else ไปทำคำสั่งถัดไป คือ พศมพ์ข้อความในบรรทัดที่ 18
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if ซ้อน if (nested if)

รูปแบบ เท็จ
เงื่อนไขที่ 1
if (เงื่อนไขที่ 1)
{ เท็จ
เงื่อนไขที่ 2
คำสั่งที่ 1;
} เท็จ
else if (เงื่อนไขที่ 2) เงื่อนไขที่ 3
{ จรศง
คำสั่งที่ 2;
จรศง จรศง
} คำสั่งที่ 1 คำสั่งที่ 2 คำสั่งที่ 3 คำสั่งที่ 4
else if (เงื่อนไขที่ 3)
{
คำสั่งที่ 3;
}
else
{
คำสั่งที่ 4;
}
คำสั่งที่ 5; คำสั่งที่ 5
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if ซ้อน if (nested if)

ตัวอย่าง โปรแกรมแสดงการหาเกรดจากคะแนน
1 #include <stdio.h> 1 #include <stdio.h>
2 main() คำสั่งเงื่อนไข if-else 2 main() คำสั่งเงื่อนไข if ซ้อน if ผลลัพธ์ของโปรแกรม
3 { 3 { (nested if)
4 int points; 4 int points;
5 printf("Please enter points : "); 5 printf("Please enter points : ");
6 scanf("%d", &points); 6 scanf("%d", &points); Please enter points : 55
7 if(points >= 80) 7 if(points >= 80) You get grade D
8 { 8 { See you again ! Next course
9 printf("Congratulations\n"); 9 printf("Congratulations\n");
10 printf("C Language programming subject\n"); 10 printf("C Language programming subject\n");
11 printf("You get grade A\n"); 11 printf("You get grade A\n");
12 } 12 }
13 else 13 else if(points >= 70) Please enter points : 80
14 if(points >= 70) 14 printf("You get grade B\n"); Congratulations
15 printf("You get grade B\n"); 15 else if(points >= 60) C Language programming subject
16 else 16 printf("You get grade C\n"); You get grade A
17 if(points >= 60) 17 else if(points >= 50) See you again ! Next course
18 printf("You get grade C\n"); 18 printf("You get grade D\n");
19 else 19 else
20 if(points >= 50) 20 printf("You get grade F\n");
21 printf("You get grade D\n"); 21 printf("See you again! Next course"); Please enter points : 45
22 else 22 }
You get grade F
23 printf("You get grade F\n");
See you again ! Next course
24 printf("See you again! Next course");
25 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if ซ้อน if (nested if)

อธศบายโปรแกรม
• ตัวอย่างโปรแกรมคำสั่งเงื่อนไข if-else และคำสั่งเงื่อนไข if ซ้อน if (nested if)
• เป็นโปรแกรมเหมือนกันทุกประการ เพียงแต่เขียนในรูปแบบที่แตกต่างกันเท่ากัน
• โปรแกรมนี้จะคำนวณเกรดจากคะแนนที่ป้อนเข้ามา โดยใช้คำสั่งในรูปแบบ if ซ้อน if
ในการตรวจสอบ ซึ่งหลักการทำงานที่เหมือนกับคำสั่งเงื่อนไข if และ if-else
ในตัวอย่างที่ผ่านมา คือ หากตรวจสอบเงื่อนไขใดแล้วพบว่าเป็นจรศง ก็จะทำงาน
ตามคำสั่งของบล็อกนั้น ๆ เช่น หาก ได้คะแนน 75 คะแนน จะได้ว่าเงื่อนไขที่ 2 คือ
point >= 70 เป็นจรศง ดังนั้น จึงแสดงข้อความว่า "You get grade B“ และ
เมื่อตรวจสอบและทำงานตามคำสั่งในส่วนของ nested if เรียบร้อยแล้ว ก็แสดง
ข้อความว่า "See you again! Next course" เสมอ
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else แบบย่อ

• การเขียนคำสั่งเงื่อนไข if-else แบบย่อ ทำให้โปรแกรมดูกะทัดรัดมากขึ้น

รูปแบบ นิพจน์เงื่อนไข ? นิพจน์ที่ 1 : นิพจน์ที่ 2

• หลักการทำงาน คือ จะเรศ่มพศจารณาจากนศพจน์เงื่อนไขที่อยู่ทางด้านซ้ายมือสุด


ซึ่งหากพศจารณาแล้วเป็นจรศง จะได้ผลลัพธ์เป็นค่าของนศพจน์ที่ 1 แต่หากเป็นเท็จ
จะได้ผลลัพธ์เป็นค่าของนศพจน์ที่ 2 เช่น

1 (2>3)?2:3 2 > 3 เป็นเท็จ ดังนั้น ผลลัพธ์ที่ได้คือ 3


2 (3>2)?2:3
3 > 2 เป็นจรศง ดังนั้น ผลลัพธ์ที่ได้คือ 2
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else แบบย่อ

ตัวอย่าง โปรแกรมแสดงการทำงานของคำสั่งเงื่อนไข if-else แบบย่อ


1 #include <stdio.h> if (num1 > num2) ผลลัพธ์ของโปรแกรม
printf("Max value is %d",num1);
2 main() else
3 { printf("Max value is %d",num2);
Please enter number1 : 100
4 int num1,num2,max; การทำงานเทียบเท่ากับ
Please enter number2 : 55
5 printf("Please enter number1 : ");
6 scanf("%d",&num1); Max value is 100
7 printf("Please enter number2 : ");
8 scanf("%d",&num2); Please enter number1 : 25
9 max = (num1 > num2) ? num1 : num2; Please enter number2 : 26
10 printf("Max value is %d",max); Max value is 26
11 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข if-else แบบย่อ

อธศบายโปรแกรม

• ถ้านศพจน์ num1 > num2 เป็นจรศง ค่าของ num1 จะถูกกำหนดให้กับตัวแปร max


• แต่ถ้านศพจน์ num1 > num2 เป็นเท็จ (ค่า num2 มากกว่าหรือเท่ากับ num1)
ค่าของ num2 จะถูกกำหนดให้กับตัวแปร max แทน
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
รูปแบบ
switch (ตัวแปร/นศพจน์ที่จะตรวจสอบ)
{
case ค่าที่ 1: switch(var)
คำสั่งที่ 1;
break;
case ค่าที่ 2:
case value1 case value2 ... default
คำสั่งที่ 2;
break;
default:
คำสั่งที่ 3;
}
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
• เป็นคำสั่งที่ใช้เลือกทำงานตามคำสั่งต่าง ๆ โดยพศจารณาจากค่าของตัวแปรหรือ
นศพจน์ที่กำหนดว่าตรงกับกรณี (case) ใด
• กล่าวคือ ถ้าคำสั่ง switch ตรวจสอบค่าของตัวแปรหรือนศพจน์ที่กำหนดแล้วพบว่า
ตรงกับ case ใดก็จะทำงานตามคำสั่งที่อยู่ภายใต้ case นั้น แต่หากตรวจสอบแล้ว
ไม่ตรงกับ case ใด ๆ เลย ก็จะเข้าสู่การทำงานภายใต้ส่วนของ default
• ทั้งนี้ คำสั่ง switch-case จะมีหรือไม่มีส่วนของ default ก็ได้
o ถ้ามี default เมื่อตรวจสอบค่าของตัวแปร/นศพจน์แล้วไม่ตรงกับ case ใด ๆ
ก็จะเข้ามาทำงานที่ default
o ถ้าไม่มี default เมื่อตรวจสอบค่าของตัวแปร/นศพจน์แล้วไม่ตรงกับ case ใด ๆ
ก็จะไม่ทำงานตามคำสั่งใด ๆ ภายใน switch-case นั้นเลย
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
• จากรูปแบบการทำงานของคำสั่งเงื่อนไข switch-case จะสังเกตเห็นว่าในแต่ละ
case เมื่อทำงานตามคำสั่งต่าง ๆ ของ case นั้น ๆ เรียบร้อยแล้ว จะต้องจบด้วย
คำสั่ง break ทุกครั้ง (ยกเว้นกรณีของ default เนื่องจากเป็นกรณีสุดท้าย
จึงไม่จำเป็นต้องใส่คำสั่ง break)
• ซึ่งสาเหตุที่ต้องใส่คำสั่ง break เพราะหลังจากทำงานตามคำสั่งใน case นั้น ๆ
เรียบร้อยแล้ว หากไม่มีคำสั่ง break โปรแกรมจะทำงานตามคำสั่งใน case อื่น ๆ
ที่อยู่ถัดไปด้วย
• ดังนั้น จึงจำเป็นต้องใช้คำสั่ง break ในการควบคุมให้โปรแกรมกระโดดออกจาก
การทำงานของคำสั่งเงื่อนไข switch-case (ข้ามการทำงานของ case อื่น ๆ
ที่อยู่ถัดไป) ไปทำคำสั่งที่อยู่นอกชุดคำสั่ง switch-case ต่อไป
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
• ระวังอย่าลืมใส่คำสั่ง break ปิดท้ายแต่ละ case
• เพราะเมื่อโปรแกรมทำงานตาม case หนึ่ง ๆ เสร็จสศ้นแล้ว หากไม่มีคำสั่ง break
สั่งให้ออกจาก switch-case จะส่งผลให้โปรแกรมประมวลผลคำสั่งทุกคำสั่ง
ทีอ่ ยู่ตามหลัง case นั้นทั้งหมด ซึ่งโปรแกรมจะทำงานผศดไปจากทีต่ ้องการ
(จะไม่ใส่คำสั่ง break ก็ต่อเมื่อเราต้องการให้ทำ case อื่น ๆ ที่อยู่ถัดไปด้วย)
• ซึ่งในการเขียนโปรแกรมบางครั้งอาจมีเหตุผลที่ต้องทำแบบนั้น

• ตัวแปรหรือนศพจน์ที่จะนำมาเป็นเงื่อนไขของ switch-case จะต้องเป็นชนศด


เลขจำนวนเต็ม (Integral Type) ได้แก่ short, int, long, long long หรือ
char เท่านั้น
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
ตัวอย่าง โปรแกรมแสดงการทำงานของคำสั่งเงื่อนไข switch-case
1 #include <stdio.h>
2 main() ผลลัพธ์ของโปรแกรม
3 {
4 char ch;
5
6
scanf("%c",&ch);
switch(ch)
กด Enter เพื่อรับค่า Enter
7 {
8 case '\n':
9 printf("You press enter");
10 break; Tab + Enter
11 case '\t':
12 printf("You press tab");
13 break;
14 case ' ': Spacebar + Enter
15 printf("You press spacebar");
16 break;
17 default:
18 printf("You don't press enter,tab and spacebar"); ETC + Enter
19 }
20 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
อธศบายโปรแกรม
• โปรแกรมนี้จะรับตัวอักษรเข้ามาเก็บไว้ในตัวแปร ch และทำการตรวจสอบตัวแปร ch ว่ามีค่าเป็นอะไร
เมือ่ พศจารณาว่าผู้ใช้ได้กดคีย์ใดเข้ามา
• โดยหากกดคีย์ Enter (ตัวแปร ch มีค่าเท่ากับ '\n’) ก็จะตรงกับกรณีของบรรทัดที่ 8 และจะทำงาน
ตามคำสั่งในบรรทัดที่ 9-10
• ถ้ากดคีย์ Tab (ตัวแปร ch มีค่าเท่ากับ ‘\t’) จะเข้ากรณีของบรรทัดที่ 11 และจะทำตามคำสัง่ บรรทัดที่
12-13 และ
• ถ้ากดคีย์ Space (ตัวแปร ch มีค่าเท่ากับ ‘ ’) จะตรงกับกรณีของบรรทัดที่ 14 ก็จะทำตามคำสั่งบรรทัดที่
15-16
• ซึ่งหากป้อนตัวอักษรอื่น ๆ นอกเหนือจาก Enter, Tab, Space แล้ว เมื่อตรวจสอบเงื่อนไขก็จะไม่ตรงกับ
กรณีใด ๆ เลย จึงเข้าสู่การทำงานภายใต้ส่วนของ default ในบรรทัดที่ 17 และทำการพศมพ์ข้อความ
ออกมาตามคำสั่งในบรรทัดที่ 18
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
ตัวอย่าง โปรแกรมหาค่าผลบวกลบคูณหารหรือยกกำลังสองของเลข 2 จำนวน
1 #include <stdio.h> 22 switch(choice)
2 #include <math.h> 23 {
3 main() 24 case 1 :
4 { 25 printf("%3.2lf + %3.2lf = %3.2lf\n",num1,num2,num1+num2);
5 int choice; 26 break;
6 double num1,num2; 27 case 2 :
7 printf("############################\n"); 28 printf("%3.2lf - %3.2lf = %3.2lf\n",num1,num2,num1-num2);
8 printf("# Please select choice #\n"); 29 break;
9 printf("############################\n"); 30 case 3 :
10 printf("# 1. Plus (+) #\n"); 31 printf("%3.2lf * %3.2lf = %3.2lf\n",num1,num2,num1*num2);
11 printf("# 2. Minus (-) #\n"); 32 break;
12 printf("# 3. Multiply (*) #\n"); 33 case 4 :
13 printf("# 4. Divide (/) #\n"); 34 printf("%3.2lf / %3.2lf = %3.2lf\n",num1,num2,num1/num2);
14 printf("# 5. Power #\n"); 35 break;
15 printf("############################\n"); 36 case 5 :
16 printf("\n \t Select : "); 37 printf("%3.2lf power %3.2lf = %3.2lf\n",num1,num2,pow(num1,num2));
17 scanf("%d",&choice); 38 break;
18 printf("\nEnter number1 : "); 39 default :
19 scanf("%lf",&num1); 40 printf("Please select choice 1-5 only\n");
20 printf("Enter number2 : "); 41 }
21 scanf("%lf",&num2); 42 }
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
ผลลัพธ์ของโปรแกรม

รันครั้งที่ 1 รันครั้งที่ 2 รันครั้งที่ 3


คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case
อธศบายโปรแกรม

• บรรทัดที่ 2 ทำการ include ไฟล์ math.h ซึ่งเป็นเฮดเดอร์ไฟล์ของภาษาซีที่รวบรวม


การประกาทของฟังก์ชันที่ใช้ทำงานต่าง ๆ ด้านคณศตทาสตร์ไว้ สาเหตุที่ต้องร่วมไฟล์
math.h เข้าไว้ในโปรแกรม เนื่องจากในบรรทัดที่ 37 มีการเรียกใช้ฟังก์ชัน pow()
เพื่อคำนวณเลขยกกำลัง โดย pow() เป็นฟังก์ชันที่มีการประกาทอยู่ในเฮดเดอร์ไฟล์
math.h ดังนั้น จึงต้องรวมเฮดเดอร์ไฟล์นี้เข้าไว้ในโปรแกรมด้วย
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case

• หากลบคำสั่ง break ผลลัพธ์ของโปรแกรม


ออกจาก case ทุก
case ของโปรแกรม
ผลลัพธ์ที่ได้จะเป็นดังนี้

รันครั้งที่ 1 รันครั้งที่ 2
คำสั่งเงื่อนไข (Condition Statement) คำสั่งเงื่อนไข switch-case

• หากลบส่วน default ผลลัพธ์ของโปรแกรม


ของคำสั่งเงื่อนไข
switch-case ออก
ผลลัพธ์ที่ได้จะเป็นดังนี้

รันครั้งที่ 1 รันครั้งที่ 2

You might also like