SlideShare a Scribd company logo
1 of 17
บทที่ 4
โครงสร้างควบคุมแบบทางเลือก
โครงสร้างควบคุมแบบทางเลือก
โครงสร้างควบคุมแบบทางเลือก เป็นโครงสร้างที่ใช้สาหรับกาหนดทางเลือกการ
ประมวลผล
คาสั่ง โดยขึ้นอยู่กับเงื่อนไขทางเลือกที่เขียนอยู่ในรูปของนิพจน์เปรียบเทียบ
(Relational expression)
หรือ นิพจน์ตรรกะ (Boolean expression) ซึ่งใช้ตัวดาเนินการ
เปรียบเทียบ หรือตัวดาเนินการตรรกะ
เป็นตัวดาเนินการของนิพจน์ ในครั้งนี้จะนาเสนอคาสั่ง if-else เชิงซ้อน และ
switch
1. คาสั่ง if-else เชิงซ้อน
คาสั่ง if - else เชิงซ้อน คือ คาสั่ง if - else ที่มีคาสั่ง if - else ซ้อนอยู่ใน
ส่วน else
ซึ่งมีรูปแบบดังนี้
ผังงานของคาสั่ง if - else เชิงซ้อน
คาสั่ง if - else เชิงซ้อนเป็นรูปแบบการทางานแบบหลายทางเลือก โดย
จะมีคาสั่งเพียง
คาสั่งเดียวเท่านั้นที่จะถูกเลือกให้ประมวลผล ขึ้นอยู่กับว่า เงื่อนไขทางเลือก
ใดเป็นจริง และในกรณีที่
ไม่มี เงื่อนไขทางเลือก ใดเป็นจริงเลย คาสั่ง n จะถูกประมวลผล
คาสั่ง 1, คาสั่ง 2, คาสั่ง 3, …, คาสั่ง n อาจเป็นคาสั่งอย่างง่ายหรือคาสั่ง
เชิงประกอบ
ตัวอย่างที่ 1 โปรแกรมทายตัวเลข3
ผลลัพธ์ของการรันครั้งที่ 1 คือ
ผลลัพธ์ของการรันครั้งที่ 2 คือ
ผลลัพธ์ของการรันครั้งที่ 3 คือ
พิจารณาค่าของตัวแปร y สาหรับโปรแกรมข้างต้นเป็น 3 กรณี ดังนี้
กรณีที่1 ถ้า y มีค่าเท่ากับ 100 จะได้ว่านิพจน์ y > TARGET มีค่าเป็นจริง แล้วฟังก์ชัน
Printf ( ) ในบรรทัดที่ 13 จะถูกประมวลผล
กรณีที่ 2 ถ้า y มีค่าเท่ากับ 9 จะได้ว่านิพจน์ y > TARGET มีค่าเป็นเท็จ และนิพจน์
y < TARGET มีค่าเป็นจริงแล้ว ฟังก์ชัน printf ( ) ในบรรทัดที่15 จะถูกประมวลผล
กรณีที่3 ถ้า y มีค่าเท่ากับ 25 จะได้ว่านิพจน์ y > TARGET และนิพจน์ y <
TARGET
มีค่าเป็นเท็จทั้งคู่ ดังนั้น ฟังก์ชัน printf ( ) ในบรรทัดที่17 จะถูกประมวลผล
พิจารณาคาสั่ง if ในรูปแบบต่อไปนี้ ซึ่งมีคาสั่ง if - else ซ้อนอูู่้้านใน
ถ้าเงื่อนไขทางเลือก 1 และเงื่อนไขทางเลือก 2 มีค่าจริง แล้วโปรแกรมจะประมวลผล
คาสั่ง 1 ก่อนที่จะประมวลผล คาสั่ง 3
ถ้าเงื่อนไขทางเลือก 1 มีค่าจริง ขณะที่เงื่อนไขทางเลือก 2 มีค่าเท็จ แล้วโปรแกรมจะ
ประมวลผล คาสั่ง 2 ก่อนที่จะประมวลผล คาสั่ง 3
และถ้าเงื่อนไขทางเลือก 1 มีค่าเท็จ แล้วโปรแกรมจะประมวลผล คาสั่ง 3 เพียงคาสั่งเดียว
เท่านั้น
นั่นคือ ในคาสั่ง if - else (หรือคาสั่ง if - else เชิงซ้อน ) else จะถูกจับคู่กับ if ก่อน
หน้าที่
อยู่ใกล้ที่สุด เสมอ ซึ่งในที่นี้คือ if ( เงื่อนไขทางเลือก 2 )
ดังนั้น ในกรณีที่ต้องการให้ คาสั่ง 2 ถูกประมวลผล เงื่อนไขทางเลือก 1 มีค่าเท็จก่อนที่จะ
ประมวลผล คาสั่ง 3 จะต้องเพิ่มเครื่องหมาย {และ} ตามรูปแบบด้านล่าง และในที่ if ( เงื่อนไข
ทางเลือก 2 ) จัดเป็นคาสั่ง if ที่ซ้อนอยู่ในคาสั่ง if - else ของ if ( เงื่อนไขทางเลือก 1 )
ตัวอย่างที่ 2 โปรแกรมแสดงการใช้ตัวดา เนินการที่ไม่เหมาะสม
เมื่อคอมไพล์โปรแกรมจะพบข้อผิดพลาดในบรรทัดที่15 เนื่องจากไม่มีคาสั่ง if ใดที่อียู่
ก่อน
บรรทัดที่15 จะใช้คู่กับ else นี้ได้ นั่นคือ คาสั่ง if ในบรรทัดที่12 จะใช้คู่กับ else
ในบรรทัด
ที่ 18 และคาสั่ง if ในบรรทัดที่13 เป็นคาสั่ง if ที่ไม่มีelse
ในการแก้ไขโปรแกรม Beware.cpp ให้ถูกต้อง นักเขียนโปรแกรมจะต้องลบ
เครื่องหมาย {
และ } ในบรรทัดที่ 13 และ 17 ตามลาดับ เพื่อให้ else ในบรรทัดที่15 ใช้คู่กับ if ใน
บรรทัดที่13
ได้อย่างถูกต้อง
2. การเลือกทาแบบ switch
คาสั่ง switch เป็นคา สั่งที่มีโครงสร้างควบคุมแบบทางเลือกที่
มีหลายทางเลือก และมีรูปแบบดังนี้
ผังงานของคาสั่ง switch
นิพจน์และค่าคงที่ของนิพจน์ในแต่ละ case จะต้องเป็นชนิดจานวนเต็ม และมีค่า
ไม่ซ้ากัน
ถ้า นิพจน์มีค่าเท่ากับ ค่าคงที่ 1 แล้ว คาสั่ง1 จะถูกประมวลผลเป็นลาดับแรก ตาม
ด้วย คาสั่ง2
จนกระทั่งถึง คาสั่ง ของ default ตามลาดับ
ในกรณีที่นิพจน์ มีค่าเท่ากับ ค่าคงที่ 2 การประมวลผลจะเริ่มต้นที่คาสั่ง2
จนกระทั่งถึง คาสั่ง
ของ default ตามลาดับ
คาสั่ง switch อาจไม่มี default ได้แต่ในกรณีที่มีdefault นิพจน์มีค่าไม่
ตรงกับ ค่าคงที่ใดๆ เลยแล้ว คาสั่ง ของกรณี default จะเป็นเพียงคา สั่งเดียว
ที่ถูกประมวลผลและในกรณีที่ไม่มีdefault และ นิพจน์มีค่าไม่ตรงกับ ค่าคงที่
ใดๆจะไม่มีคาสั่งใดเลยที่ถูกประมวลผล
ตัวอู่างที่ 3 โปรแกรมพิมพ์เลข 1-9
ผลลัพธ์ คือ
ผลลัพธ์ข้างต้นเป็นผลจากการป้อนอักขระ 5 ให้โปรแกรม นั้น คือ ในกรณีที่อักขระที่รับ
ค่าเข้ามามีค่าเป็น 1 – 9 โปรแกรมจะประมวลผลฟังก์ชัน printf () ของ case ที่ตรงกัน
และตรงกัน และน้อยกว่าจนครบทุกกรณี และในกรณีที่อักขระที่รับเข้ามาเป็นอักขระอื่น ๆ
โปรแกรมจะประมวลผลฟังก์ชัน Printf () ในกรณี default เพียงเท่านั้น
ในกรณีที่ต้องการให้คา สั่งของ case ใด case หนึ่งเท่านั้นถูกประมวลผล นักเขียนโปรแกรม
จะต้องเพิ่มคาสั่ง break เป็นคาสั่งสุดท้ายในแต่ละ case

More Related Content

What's hot

2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ
2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ
2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการAppleHong1
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมJK133
 
บทที่ 2 ตัวแปร
บทที่ 2 ตัวแปรบทที่ 2 ตัวแปร
บทที่ 2 ตัวแปรKomkai Pawuttanon
 
หน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามหน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามkruthanyaporn
 
ตัวแปรและชนิดข้อมูล
ตัวแปรและชนิดข้อมูลตัวแปรและชนิดข้อมูล
ตัวแปรและชนิดข้อมูลInam Chatsanova
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซีboky_peaw
 
ฟังก์ชันอินเวอร์ส
ฟังก์ชันอินเวอร์สฟังก์ชันอินเวอร์ส
ฟังก์ชันอินเวอร์สY'Yuyee Raksaya
 
หลักการตั้งชื่อตัวแปร
หลักการตั้งชื่อตัวแปรหลักการตั้งชื่อตัวแปร
หลักการตั้งชื่อตัวแปรNaruemon Soonthong
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)Visaitus Palasak
 

What's hot (19)

3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน
 
2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ
2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ
2.3 ชนิดข้อมูล ตัวแปร และตัวดำเนินการ
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
บทที่ 2 ตัวแปร
บทที่ 2 ตัวแปรบทที่ 2 ตัวแปร
บทที่ 2 ตัวแปร
 
งานคอม 1
งานคอม 1งานคอม 1
งานคอม 1
 
หน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามหน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถาม
 
ตัวแปรและชนิดข้อมูล
ตัวแปรและชนิดข้อมูลตัวแปรและชนิดข้อมูล
ตัวแปรและชนิดข้อมูล
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซี
 
3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล
 
ตัวแปรกับชนิดของข้อมูล
ตัวแปรกับชนิดของข้อมูลตัวแปรกับชนิดของข้อมูล
ตัวแปรกับชนิดของข้อมูล
 
Unit7
Unit7Unit7
Unit7
 
งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6
 
ฟังก์ชันอินเวอร์ส
ฟังก์ชันอินเวอร์สฟังก์ชันอินเวอร์ส
ฟังก์ชันอินเวอร์ส
 
หลักการตั้งชื่อตัวแปร
หลักการตั้งชื่อตัวแปรหลักการตั้งชื่อตัวแปร
หลักการตั้งชื่อตัวแปร
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
ตัวแปรและคำสงวน
ตัวแปรและคำสงวนตัวแปรและคำสงวน
ตัวแปรและคำสงวน
 
lesson5 JSP
lesson5 JSPlesson5 JSP
lesson5 JSP
 
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
 
สูตรคำนวน
สูตรคำนวนสูตรคำนวน
สูตรคำนวน
 

Similar to บทที่ 4

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Pornpimon Aom
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3KEk YourJust'one
 
บทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมบทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมpennapa34
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกThanon Paktanadechanon
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Janë Janejira
 
Java Programming [3/12]: Control Structures
Java Programming [3/12]:  Control StructuresJava Programming [3/12]:  Control Structures
Java Programming [3/12]: Control StructuresIMC Institute
 
เงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจเงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจOraphan4
 
คำสั่งและเงื่อนไข [Web-Programming]
คำสั่งและเงื่อนไข [Web-Programming]คำสั่งและเงื่อนไข [Web-Programming]
คำสั่งและเงื่อนไข [Web-Programming]Khon Kaen University
 
คำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรมคำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรมParn Nichakorn
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกWorapod Khomkham
 
Php เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆPhp เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆJaemjan Sriarunrasmee
 
งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์Oraphan4
 

Similar to บทที่ 4 (15)

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
 
บทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมบทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรม
 
Know009
Know009Know009
Know009
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
Unit10
Unit10Unit10
Unit10
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Java Programming [3/12]: Control Structures
Java Programming [3/12]:  Control StructuresJava Programming [3/12]:  Control Structures
Java Programming [3/12]: Control Structures
 
เงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจเงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจ
 
คำสั่งและเงื่อนไข [Web-Programming]
คำสั่งและเงื่อนไข [Web-Programming]คำสั่งและเงื่อนไข [Web-Programming]
คำสั่งและเงื่อนไข [Web-Programming]
 
คำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรมคำสั่งควบคุมของโปรแกรม
คำสั่งควบคุมของโปรแกรม
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
Php เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆPhp เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆ
 
หน่วยที่ 6 การเลือกทำด้วยคำสั่ง
หน่วยที่ 6 การเลือกทำด้วยคำสั่ง หน่วยที่ 6 การเลือกทำด้วยคำสั่ง
หน่วยที่ 6 การเลือกทำด้วยคำสั่ง
 
งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์
 

More from Wittaya Kaewchat

More from Wittaya Kaewchat (7)

บทที่ 7
บทที่ 7บทที่ 7
บทที่ 7
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
ความเป็นมาของภาษาC
ความเป็นมาของภาษาCความเป็นมาของภาษาC
ความเป็นมาของภาษาC
 

บทที่ 4

  • 2. โครงสร้างควบคุมแบบทางเลือก โครงสร้างควบคุมแบบทางเลือก เป็นโครงสร้างที่ใช้สาหรับกาหนดทางเลือกการ ประมวลผล คาสั่ง โดยขึ้นอยู่กับเงื่อนไขทางเลือกที่เขียนอยู่ในรูปของนิพจน์เปรียบเทียบ (Relational expression) หรือ นิพจน์ตรรกะ (Boolean expression) ซึ่งใช้ตัวดาเนินการ เปรียบเทียบ หรือตัวดาเนินการตรรกะ เป็นตัวดาเนินการของนิพจน์ ในครั้งนี้จะนาเสนอคาสั่ง if-else เชิงซ้อน และ switch
  • 3. 1. คาสั่ง if-else เชิงซ้อน คาสั่ง if - else เชิงซ้อน คือ คาสั่ง if - else ที่มีคาสั่ง if - else ซ้อนอยู่ใน ส่วน else ซึ่งมีรูปแบบดังนี้
  • 5. คาสั่ง if - else เชิงซ้อนเป็นรูปแบบการทางานแบบหลายทางเลือก โดย จะมีคาสั่งเพียง คาสั่งเดียวเท่านั้นที่จะถูกเลือกให้ประมวลผล ขึ้นอยู่กับว่า เงื่อนไขทางเลือก ใดเป็นจริง และในกรณีที่ ไม่มี เงื่อนไขทางเลือก ใดเป็นจริงเลย คาสั่ง n จะถูกประมวลผล คาสั่ง 1, คาสั่ง 2, คาสั่ง 3, …, คาสั่ง n อาจเป็นคาสั่งอย่างง่ายหรือคาสั่ง เชิงประกอบ
  • 8. พิจารณาค่าของตัวแปร y สาหรับโปรแกรมข้างต้นเป็น 3 กรณี ดังนี้ กรณีที่1 ถ้า y มีค่าเท่ากับ 100 จะได้ว่านิพจน์ y > TARGET มีค่าเป็นจริง แล้วฟังก์ชัน Printf ( ) ในบรรทัดที่ 13 จะถูกประมวลผล กรณีที่ 2 ถ้า y มีค่าเท่ากับ 9 จะได้ว่านิพจน์ y > TARGET มีค่าเป็นเท็จ และนิพจน์ y < TARGET มีค่าเป็นจริงแล้ว ฟังก์ชัน printf ( ) ในบรรทัดที่15 จะถูกประมวลผล กรณีที่3 ถ้า y มีค่าเท่ากับ 25 จะได้ว่านิพจน์ y > TARGET และนิพจน์ y < TARGET มีค่าเป็นเท็จทั้งคู่ ดังนั้น ฟังก์ชัน printf ( ) ในบรรทัดที่17 จะถูกประมวลผล
  • 9. พิจารณาคาสั่ง if ในรูปแบบต่อไปนี้ ซึ่งมีคาสั่ง if - else ซ้อนอูู่้้านใน ถ้าเงื่อนไขทางเลือก 1 และเงื่อนไขทางเลือก 2 มีค่าจริง แล้วโปรแกรมจะประมวลผล คาสั่ง 1 ก่อนที่จะประมวลผล คาสั่ง 3 ถ้าเงื่อนไขทางเลือก 1 มีค่าจริง ขณะที่เงื่อนไขทางเลือก 2 มีค่าเท็จ แล้วโปรแกรมจะ ประมวลผล คาสั่ง 2 ก่อนที่จะประมวลผล คาสั่ง 3 และถ้าเงื่อนไขทางเลือก 1 มีค่าเท็จ แล้วโปรแกรมจะประมวลผล คาสั่ง 3 เพียงคาสั่งเดียว เท่านั้น
  • 10. นั่นคือ ในคาสั่ง if - else (หรือคาสั่ง if - else เชิงซ้อน ) else จะถูกจับคู่กับ if ก่อน หน้าที่ อยู่ใกล้ที่สุด เสมอ ซึ่งในที่นี้คือ if ( เงื่อนไขทางเลือก 2 ) ดังนั้น ในกรณีที่ต้องการให้ คาสั่ง 2 ถูกประมวลผล เงื่อนไขทางเลือก 1 มีค่าเท็จก่อนที่จะ ประมวลผล คาสั่ง 3 จะต้องเพิ่มเครื่องหมาย {และ} ตามรูปแบบด้านล่าง และในที่ if ( เงื่อนไข ทางเลือก 2 ) จัดเป็นคาสั่ง if ที่ซ้อนอยู่ในคาสั่ง if - else ของ if ( เงื่อนไขทางเลือก 1 )
  • 12. เมื่อคอมไพล์โปรแกรมจะพบข้อผิดพลาดในบรรทัดที่15 เนื่องจากไม่มีคาสั่ง if ใดที่อียู่ ก่อน บรรทัดที่15 จะใช้คู่กับ else นี้ได้ นั่นคือ คาสั่ง if ในบรรทัดที่12 จะใช้คู่กับ else ในบรรทัด ที่ 18 และคาสั่ง if ในบรรทัดที่13 เป็นคาสั่ง if ที่ไม่มีelse ในการแก้ไขโปรแกรม Beware.cpp ให้ถูกต้อง นักเขียนโปรแกรมจะต้องลบ เครื่องหมาย { และ } ในบรรทัดที่ 13 และ 17 ตามลาดับ เพื่อให้ else ในบรรทัดที่15 ใช้คู่กับ if ใน บรรทัดที่13 ได้อย่างถูกต้อง
  • 13. 2. การเลือกทาแบบ switch คาสั่ง switch เป็นคา สั่งที่มีโครงสร้างควบคุมแบบทางเลือกที่ มีหลายทางเลือก และมีรูปแบบดังนี้
  • 15. นิพจน์และค่าคงที่ของนิพจน์ในแต่ละ case จะต้องเป็นชนิดจานวนเต็ม และมีค่า ไม่ซ้ากัน ถ้า นิพจน์มีค่าเท่ากับ ค่าคงที่ 1 แล้ว คาสั่ง1 จะถูกประมวลผลเป็นลาดับแรก ตาม ด้วย คาสั่ง2 จนกระทั่งถึง คาสั่ง ของ default ตามลาดับ ในกรณีที่นิพจน์ มีค่าเท่ากับ ค่าคงที่ 2 การประมวลผลจะเริ่มต้นที่คาสั่ง2 จนกระทั่งถึง คาสั่ง ของ default ตามลาดับ คาสั่ง switch อาจไม่มี default ได้แต่ในกรณีที่มีdefault นิพจน์มีค่าไม่ ตรงกับ ค่าคงที่ใดๆ เลยแล้ว คาสั่ง ของกรณี default จะเป็นเพียงคา สั่งเดียว ที่ถูกประมวลผลและในกรณีที่ไม่มีdefault และ นิพจน์มีค่าไม่ตรงกับ ค่าคงที่ ใดๆจะไม่มีคาสั่งใดเลยที่ถูกประมวลผล
  • 17. ผลลัพธ์ คือ ผลลัพธ์ข้างต้นเป็นผลจากการป้อนอักขระ 5 ให้โปรแกรม นั้น คือ ในกรณีที่อักขระที่รับ ค่าเข้ามามีค่าเป็น 1 – 9 โปรแกรมจะประมวลผลฟังก์ชัน printf () ของ case ที่ตรงกัน และตรงกัน และน้อยกว่าจนครบทุกกรณี และในกรณีที่อักขระที่รับเข้ามาเป็นอักขระอื่น ๆ โปรแกรมจะประมวลผลฟังก์ชัน Printf () ในกรณี default เพียงเท่านั้น ในกรณีที่ต้องการให้คา สั่งของ case ใด case หนึ่งเท่านั้นถูกประมวลผล นักเขียนโปรแกรม จะต้องเพิ่มคาสั่ง break เป็นคาสั่งสุดท้ายในแต่ละ case