การเขียนคาสั่งควบคุม
แบบมีทางเลือก
ในการเขียนคาสั่งควบคุมแบบมีทางเลือก นอกจากจะต้องใช้ความรู้ในเรื่องการเขียน
คาสั่งระดับพื้นฐานแล้ว จาเป็นต้องมีความรู้ในเรื่องการกาหนดชื่อหน่วยความจา ชนดดและขอบ
เขตของข้อมูล การเขียนคาสั่งแบบนดพจน์ตรรกะ การสรุปค่าความจรดงของประโยคนดพจน์ตรรกะ
การเขียนคาสั่งควบคุมแบบมีทางเลือกมี 2 ลักษณะ คือ
1.แบบกาหนดทางเลือก 2 ทาง
2.แบบกาหนดทางเลือกมากกว่า 2 ทาง
สด่งที่จาเป็นต้องรู้เพื่อเพด่มประสดทธดภาพในการเขียนคาสั่งจะมีดังนี้ คือ
เกณฑ์การกาหนดชื่อหน่วยความจา ชนดดข้อมูลพื้นฐานในภาษาซี และคาสั่ง
กาหนดค่าคงที่
1.1 กฎเกณฑ์การกาหนดชื่อ
1.อักขระแรกต้องเป็นตัวอักษร หรือเครื่องหมายขีดล่าง ( _ ) ตัวถัดไปเป็นอักษร
ตัวเลข หรือ เครื่องหมายขีดล่างก็ได้
2.ในภาษาซีตัวพดมพ์ใหญ่จะมีความหมายต่างกับตัวพดมพ์เล็ก เช่น A จะมีความหมาย
ไม่เหมือน A
3. ห้ามมีอักขระพดเศษ เช่น $ @ และห้ามมีช่องว่างระหว่างอักขระ
4. ควรตั้งชื่อให้สอดคล้องกับงาน
5. ต้องไม่ซ้ากับคาสงวนของภาษาซี
1.2 ชนิดข้อมูล
•ภาษาซีมีชนดดข้อมูลพื้นฐาน 3 กลุ่มหลักคือ อักขระ ตัวเลขจานวนเต็ม
ตัวเลขทศนดยม
• ผู้สร้างโปรแกรมควรเลือกใช้ชนดดข้อมูลให้เหมาะสม เพื่อใช้หน่วย
ความจาาอย่างมีประสดทธดภาพ
1.3 คาสั่งกาหนดข้อมูลแบบค่าคงที่
แบบที่ 1 ไม่ต้องกาหนดชื่อของข้อมูล
แบบที่ 2 เขียนบรดเวณส่วนหัว ในโครงสร้างภาษาซี
รูปแบบ #DEFINE MACRO_NAME DATA;
อธดบาย MACRO_NAME คือชื่อของข้อมูล ต้องใช้ตัวพดมพ์ใหญ่
DATA คือข้อมูล
แบบที่ 3 เขียนบรดเวณฟังก์ชันหลัก
รูปแบบ CONST VARIABLE = DATA;
อธดบาย VARIABLE คือชื่อตัวแปร
DATA คือข้อมูล
2.1ตัวดาเนินการทางคณิตศาสตร์ (MATHEMATICAL
OPERATORS)
2.2 ตัวดาเนินการความสัมพันธ์ (RELATIONAL OPERATORS)
2.3 ตัวดาเนินการเชิงตรรกะ (LOGICAL OPERATORS)
ตรรกะ คือ การคิดเชิงเหตุผลที่มีความจริงค่าใดค่าหนึ่งคือ จริง
(TRUE:1) หรือ (FALSE:0)
•เป็นคาสั่งที่มีการทดสอบเงื่อนไข (จรดง/เท็จ) ก่อนที่จะทางานตามคาสั่งที่กาหนด
•โดย EXPRESSION เป็นเงื่อนไขที่มีค่าความจรดงได้เพียงแบบเดียวคือ จรดง หรือ
เท็จ เท่านั้นถ้ามีค่าเป็นจรดงจะทาตามคาสั่งชุด A จากนั้นจึงออกไปทาตามคาสั่ง
ถัดไปตามปกตด แต่ถ้าเงื่อนไขมีค่าเป็นเท็จ จะไม่ทาตามคาสั่งในชุด A ส่วนคาสั่งที่
อยู่ถัดไป(ถ้ามี) ก็จะมีการทางานตามปกตด
คาสั่ง IF ELSE
เป็นคาสั่งที่มีการทดสอบเงื่อนไขแบบ 2 ทางเลือก ถ้าเงื่อนไขเป็นจรดง ให้ทาตามคาสั่งชุด A
แต่ถ้าเงื่อนไขเป็นเท็จ ให้ทาตามคาสั่งชุด B หรือกล่าวได้ว่าถ้าเงื่อนไขเป็นจรดงทาคาสั่งหลัง IF
(จานวน 1 ชุกคาสั่ง) แต่ถ้าเงื่อนไขเป็นเท็จจึงไปทาหลัง ELSE (จานวน 1 ชุดคาสั่ง) ซึ่งจะเห็น
ว่าต้องเลือกทาอย่างใดอย่างหนึ่งเสมอ สาหรับการทางานของคาสั่ง IF ELSE มีรูปแบบของ
คาสั่ง IF ELSE โดย EXPRESSION เป็นเงื่อนไขที่มีค่าความจรดงได้เพียงแบบเดียวคือ จรดง หรือ
เท็จ เท่านั้น
ถ้ามีค่าเป็นจรดง โปรแกรมจะทางานต่อไปในคาสั่งหลัง IF คือ คาสั่งชุด A เสร็จแล้ว
ออกจาก IF โดยไม่ทาตามคาสั่งชุด B ถ้า EXPRESSION มีค่าเป็นเท็จ โปรแกรมจะ
ทาตามคาสั่งหลัง ELSE คือ คาสั่งชุด B แล้วออกไปโดยไม่ทาตามคาสั่งชุด A
คาสั่ง NESTED IF/IF ELSE
คาสั่ง NESTED IF หรือ IF ELSE IF ELSE มีโครงสร้าง ELSE IF เพด่มเข้ามาใน
คาสั่ง ELSE ทาให้ใช้คาสั่ง ELSE IF เพด่มได้ตามที่ต้องการ ใช้กับการตัดสดนใจ
ที่มีทางเลือกมากกว่า 2ทางเลือก รูปแบบของคาสั่ง IF ELSE IF ดังรูปที่ 8.5
โดยในที่นี้จะแสดงเฉพาะกรณีคาสั่งประกอบ ส่วนคาสั่งเดี่ยวจะอาศัยหลักการ
เช่นเดียวกับกรณีของโครงสร้างแบบ IF และ IF ELSE
เหมาะกับการนาไปประยุกต์ใช้กับโปรแกรมที่มีเมนูให้เลือกรายการต่างๆจะคล้าย
กับคาสั่ง IF โดยจะช่วยอานวยสะดวก ในกรณีที่ต้องการเปรียบเทียบตัวแปรหรือ
นดพจน์หนึ่งกับค่าหลายค่า คาสั่งใดถูกประมวลผลเป็นคาสั่งแรกขึ้นอยู่กับว่านดพจน์
นั้นมีค่าเท่ากับค่าคงที่ใน CASE ไหน ก็จะถูกประมวลผลเป็นลาดับแรก จน
ประมวลผลถึงคาสั่ง DEFAULT ตามลาดับ เเต่ถ้าในนดพจน์ไม่มีค่าตรงกับค่าคงที่
ใดๆเลยจะทางานในส่วนของ DEFAULT เลย
ข้อแตกต่างระหว่างประโยคคาสั่ง if-else และ switch
1. นดพจน์ชนดดตังเลขจานวนจรดง ที่มีจุดทศนดยมจะนามาตรวจสอบด้วย switch ไม่ได้
2. ชนดดข้อมูลที่สามารถนามาใช้ตรวจสอบใน switch คือชนดดข้อมูลแบบ int หรือ char
3. การตรวจสอบค่าใน case ของ switch แต่ละกรณีไม่สามารถนาค่าตัวแปรมาใช้ได้
เช่น case a+1: ถือว่าใช้งานไม่ได้
4. switch ไม่สามารถตรวจสอบหลายๆเงื่อนไขภายในนดพจน์เดียวกันได้ เช่น
switch(num)
{
case > 0 && <5
: :
}
กรณีใช้คาสั่ง switch
โจทย์ : จงเขียนงานโปรแกรมใน
ลักษณะเมนูเลือกการทางาน ด้วยคาสั่ง
switch ดังนี้
กาหนดให้
กด 1 คานวณพื้นที่สี่เหลี่ยมจัตุรัส
กด 2 คานวณพื้นที่สามเหลี่ยม
กด 3 ออกจากระบบงาน
นอกเหนือจากนี้ แจ้งข้อความการกดหมายเลข
ผดดพลาด
ขั้นตอนการพัฒนางานโปรแกรม
1. การวดเคราะห์ระบบงานเบื้องต้น
1.1 สด่งที่ต้องการ โปรแกรมเมนูเลือกการ
คานวณพื้นที่สี่เหลี่ยม และพื้นที่สามเหลี่ยม
1.2 สมการคานวณ พื้นที่สี่เหลี่ยม = กว้าง x
ยาว พื้นที่สามเหลี่ยม = ฐาน x สูง /2
1.3 ข้อมูลนาเข้า ตัวเลือกเมนู ความกว้าง
ความยาว หรือฐานกับสูง
1.4 การแสดงผลตามโจทย์กาหนด
1.5 กาหนดคุณสมบัตดตัวแปร
1.6 ลาดับขั้นตอนการทางาน (action)
1) เรด่มต้นการทางาน
2) แสดงส่วนเมนูเลือกงาน
3) ป้อนค่าตัวเลือกเมนู (ans)
4) เลือกทางานด้วยคาสั่ง switch (ans)
4.1) ถ้า ans เป็น ‘1’ ให้ทางาน
กลุ่มคาสั่ง ดังนี้
- ป้อนคาสั่ง w, l
- คานวณ area = w * l
- พดมพ์ area
(ออกไปทางานข้อ 5)
4.2 ถ้า ans เป็น ‘2’ ให้ทางานกลุ่มคาสั่ง ดังนี้
- ป้อนคาสั่ง b, h
- คานวณ area = b * h/2
- พดมพ์ area
(ออกไปทางานข้อ 5)
4.3) ถ้า ans เป็น ‘3’ ให้ทางานกลุ่ม คาสั่งดังนี้
ออกจากส่วนการทางาน
(ออกไปทางานข้อ 5)
4.4) นอกเหนือจากนี้ พดมพ์ข้อความแจ้ง
ข้อผดดพลาด
(ออกไปทางานข้อ 5)
5) สด้นสุดการทางาน
2. แผงผังงาน
3.คาสั่งควบคุมการทางาน
จากตัวอย่างโจทย์ข้างต้นจะเป็นลักษณะเมนูเลือกการทางาน ที่ควบคุมการเลือกการทางาน
แบบด้วยคาสั่งswitch
การเขียนคาสั่งควบคุมแบบมีทางเลือก
จัดทาโดย
นาย ดนุพล ศรีสวย เลขที่ 1
นาย วฑัญญู เพ็งสวน เลขที่ 3
นายประจักษ์ สืบจากอดนทร์ เลขที่ 11
นาย คงศักดด์ ชูศรี เลขที่ 16
นางสาวจดรชยา ตั้งสุขสาร เลขที่ 22
นางสาวปิยฉัตร ร่วมจดตร เลขที่ 23

งานคอม 1