วิธีใช้คำสั่งสวิตช์ใน C++
คำสั่งแบบมีเงื่อนไขเป็นคุณลักษณะทั่วไปของภาษาโปรแกรมทั้งหมด คำสั่งเหล่านี้ใช้เพื่อควบคุมการไหลของโปรแกรมและระบุว่าเมื่อใดควรรันบล็อกโค้ดเฉพาะ
คำสั่งเงื่อนไขหลักที่ใช้ใน C ++ คือ if
และ if … else
งบ. นอกจากนี้ C++ ยังมี switch
คำแถลง. คำสั่งนี้จะประเมินนิพจน์เทียบกับกรณีที่เป็นไปได้หลายกรณีและดำเนินการบล็อกของรหัสหากนิพจน์ตรงกับกรณีที่เกี่ยวข้องของบล็อกนั้น คำสั่ง switch ทำงานคล้ายกับ if
คำสั่งที่มี if … else
แถลงการณ์
ในบทช่วยสอนนี้ เราจะพูดถึง—รวมถึงตัวอย่าง—วิธีใช้คำสั่ง switch ใน C++ เราจะหารือเกี่ยวกับวิธีใช้ break
และ default
คีย์เวิร์ดที่มีคำสั่ง switch หลังจากอ่านคู่มือนี้ คุณจะเป็นผู้เชี่ยวชาญในการใช้คำสั่งสวิตช์ C++
คำสั่งเงื่อนไข C++
คำสั่งแบบมีเงื่อนไข เช่น if
และ if … else
ใช้ในการตัดสินใจในโปรแกรม ตัวอย่างเช่น if
คำสั่งสามารถสั่งให้โปรแกรมรันบล็อกของรหัสได้หากผู้ใช้อายุเกิน 16 ปี หรือเป็นวันพุธ
if
และ if … else
คำสั่งคือรูปแบบทั่วไปของคำสั่งแบบมีเงื่อนไข if
และ if … else
คำสั่งเรียกใช้บล็อกของรหัสหากเงื่อนไขเป็นจริง มิฉะนั้น พวกเขาไม่ทำอะไรเลย นี่คือตัวอย่างของ C++ if
คำสั่ง:
int age = 15; if (age > 16) { cout<<"This user is over the age of 16." }
ในตัวอย่างนี้ โค้ดของเราจะประเมินว่าอายุของตัวแปรมากกว่า 16 หรือไม่ หากใช่ ประโยค This user is over the age of 16
. ถูกพิมพ์ไปที่คอนโซล มิฉะนั้นจะไม่มีอะไรเกิดขึ้น ในกรณีนี้ ผู้ใช้ของเรามีอายุ 15 ปี ดังนั้น age > 16
ประเมินเป็นเท็จ ดังนั้น โปรแกรมจะไม่รันโค้ดที่เกี่ยวข้องกับ if
. ของเรา คำสั่ง
แต่ถ้าคุณต้องการประเมินกับหลายเงื่อนไขล่ะ
นั่นคือที่มาของคำสั่ง switch ในขณะที่คุณสามารถใช้ if … else
คำสั่งเพื่อประเมินหลายเงื่อนไขใน if
คำสั่งวิธีนี้อาจไม่ได้ผลและทำให้โค้ดของคุณอ่านยากขึ้น ดังนั้น นักพัฒนาจึงมักใช้คำสั่ง switch เพื่อประเมินคำสั่งเทียบกับกรณีที่เป็นไปได้หลายกรณี
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
คำสั่งสวิตช์ C++
คำสั่ง switch หรือที่เรียกว่า switch … case
คำสั่ง ช่วยให้คุณตรวจสอบว่านิพจน์มีค่าเท่ากับกรณีใดกรณีหนึ่งจากหลายกรณี หากนิพจน์ที่ระบุตรงกัน (หรืออีกนัยหนึ่ง เท่ากับ) กรณีใดกรณีหนึ่งในกลุ่มสวิตช์ โค้ดเฉพาะที่เกี่ยวข้องกับเคสนั้นจะถูกดำเนินการ
คำสั่ง switch ประกอบด้วยคำสั่ง case อย่างน้อยหนึ่งรายการ โปรแกรมใช้คำสั่ง case เพื่อประกาศเงื่อนไขที่นิพจน์เป้าหมายของคุณควรได้รับการประเมิน
คำสั่ง switch ยอมรับนิพจน์ที่จะทดสอบ ซึ่งล้อมรอบด้วยวงเล็บ เช่นเดียวกับกรณีที่คุณต้องการประเมินนิพจน์ของคุณอย่างน้อยหนึ่งกรณี กรณีเหล่านี้อยู่ในวงเล็บปีกกา
นี่คือไวยากรณ์สำหรับคำสั่งสวิตช์ C++:
switch (expression) { case firstCase: // Code to be executed if expression matches firstCase break; case secondCase: // Code to be executed if expression matches secondCase break; default: // Code to be executed if no expressions are met } }
นี่คือตรรกะสำหรับคำสั่งสวิตช์ด้านบนใน C++:
- โปรแกรมประเมินนิพจน์
- นิพจน์ถูกเปรียบเทียบกับ firstCase หากตรงกัน โปรแกรมจะดำเนินการโค้ดในบล็อก firstCase จากนั้น คีย์เวิร์ดตัวแบ่งจะทำงาน ซึ่งจะยุติบล็อกสวิตช์
หมายเหตุ :เราจะพูดถึงคีย์เวิร์ดตัวแบ่งในส่วนหลังของบทความนี้ โดยพื้นฐานแล้ว คีย์เวิร์ดนี้บอกให้โปรแกรมดำเนินการต่อไป โดยผ่านบล็อกสวิตช์ปัจจุบัน
- หากนิพจน์ไม่ตรงกับ firstCase นิพจน์จะถูกเปรียบเทียบกับ secondCase
- หากนิพจน์ตรงกับ secondCase โปรแกรมจะดำเนินการโค้ดภายในบล็อก secondCase และคำสั่ง break จะยุติบล็อกสวิตช์
- หากนิพจน์ไม่ตรงกับกรณีใดๆ ในบล็อกสวิตช์ โปรแกรมจะดำเนินการเนื้อหาของคำสั่งกรณีเริ่มต้น
หมายเหตุ :เราจะหารือเกี่ยวกับแนวคิดของคำสั่งเริ่มต้น เนื่องจากเกี่ยวข้องกับการสลับคำสั่ง ในส่วนหลังของบทความนี้ ค่าดีฟอลต์คือคีย์เวิร์ดที่บอกโปรแกรมว่าต้องทำอย่างไรหากไม่มีคำสั่ง case ภายในบล็อกสวิตช์ที่ตรงกับนิพจน์
ในคำสั่ง switch โปรแกรมจะประเมินกรณีแรกก่อน หากไม่ประเมินว่าเป็นจริง โปรแกรมจะประเมินกรณีต่างๆ ที่ตามมาจนกว่าจะตรงตามเงื่อนไขหรือจนกว่าจะมีการประเมินเงื่อนไขทั้งหมด
ตัวอย่างสวิตช์ C++
มาดูตัวอย่างทีละขั้นตอนเพื่อสำรวจว่าคำสั่ง switch ทำงานอย่างไรใน C++
สมมติว่าเรากำลังเขียนโปรแกรมที่บอกเราว่าเหลืออีกกี่วันจนถึงวันหยุดสุดสัปดาห์ ในโปรแกรมนี้ แต่ละวันในสัปดาห์จะแสดงด้วยจำนวนเต็ม ตัวอย่างเช่น วันจันทร์จะเป็น 1 วันอังคารจะเป็น 2 วันพุธจะเป็น 3 เป็นต้น
โปรแกรมนี้จะใช้วันปัจจุบันของสัปดาห์ (แสดงเป็นจำนวนเต็ม) และเปรียบเทียบกับชุดของกรณีและปัญหา แต่ละกรณีจะสั่งให้โปรแกรมพิมพ์ประโยคที่ระบุจำนวนวันที่เหลือจนถึงวันหยุดสุดสัปดาห์ตามวันทำงานปัจจุบัน
นี่คือรหัสที่เราสามารถใช้ทำงานนี้ให้สำเร็จ:
#include <iostream> include namespace std; int main() { int dayOfWeek = 3; switch (dayOfWeek) { case 1: cout<<"There are 5 days until the weekend!"; break; case 2: cout<<"There are 4 days until the weekend!"; break; case 3: cout<<"There are 3 days until the weekend!"; break; case 4: cout<<"There are 2 days until the weekend!"; break; case 5: cout<<"There is 1 day until the weekend!"; break; } }
รหัสของเราส่งคืน:
There are 3 days until the weekend.
มาทำลายรหัสของเรากัน ขั้นแรก เราประกาศตัวแปรที่เรียกว่า dayOfWeek ซึ่งเก็บวันปัจจุบันของสัปดาห์เป็นจำนวนเต็ม จากนั้นเราจะใช้คำสั่ง switch ที่ระบุ 5 กรณี
ขั้นแรก โปรแกรมของเราจะตรวจสอบเพื่อดูว่า dayOfWeek เท่ากับ 1 หรือไม่ หากใช่ โปรแกรมของเราจะพิมพ์ There are 5 days until the weekend!
ไปที่คอนโซล หลังจากนั้นจะแยกคำสั่ง switch
หาก dayOfWeek ไม่เท่ากับ 1 โปรแกรมจะประเมินกรณีถัดไป สิ่งนี้จะดำเนินต่อไปจนกว่าโปรแกรมจะประเมินทุกกรณีในคำสั่ง switch ของเรา เว้นแต่กรณีใดกรณีหนึ่งประเมินว่าเป็นจริง เมื่อถึงจุดนั้นคำสั่ง break จะทำงานและคำสั่ง loop switch ของเราจะยุติลง
ในตัวอย่างของเรา เราระบุว่าวันในสัปดาห์คือ 3 ซึ่งหมายความว่าเป็นวันพุธ เป็นผลให้โปรแกรมของเราพิมพ์ There are 3 days until the weekend!
ไปที่คอนโซล จากนั้นโปรแกรมของเราจะยุติบล็อกสวิตช์ของโค้ดและเรียกใช้โปรแกรมหลักต่อไป
ตัวแบ่ง C++
คำสั่งสวิตช์ C++ มักจะใช้คีย์เวิร์ด break ในแต่ละกรณี เช่นเดียวกับที่เราทำในตัวอย่างด้านบน เมื่อโปรแกรมรันคำสั่ง break โค้ดภายในบล็อคที่กำหนดจะหยุดการทำงานและส่วนที่เหลือของโปรแกรมจะทำงานต่อไป
คำสั่ง break มักใช้กับคำสั่ง switch เนื่องจากจะหยุดโปรแกรมไม่ให้ประเมินกรณีที่เหลือในคำสั่ง switch
นี่คือตัวอย่างของคีย์เวิร์ดตัวแบ่งในคำสั่ง switch ที่นำมาจากตัวอย่างที่ขยายออกไปด้านบน:
… case 3: cout<<"There are 3 days until the weekend!"; break; …
ในตัวอย่างข้างต้น หาก dayOfWeek เท่ากับ 3 โปรแกรมของเราจะรันคำสั่ง break เพื่อไม่ให้มีการประเมินกรณีอื่นๆ อีก สิ่งนี้สมเหตุสมผลเพราะหาก dayOfWeek เท่ากับ 3 จะไม่สามารถเท่ากับ 4 หรือ 5 ได้ ซึ่งเป็นกรณีต่อไปในคำสั่ง switch ของเรา
หาก dayOfWeek เท่ากับ 3 ข้อความ There are 3 days until the weekend!
ถูกพิมพ์ไปที่คอนโซล จากนั้นคำสั่ง switch จะหยุดทำงานเนื่องจากคำสั่ง break สั่งให้โปรแกรมข้ามผ่านบล็อกสวิตช์
ค่าเริ่มต้น C++
ใน C++ คีย์เวิร์ดของตัวพิมพ์ที่เป็นค่าเริ่มต้นซึ่งเป็นทางเลือกจะบอกโค้ดของเราว่าต้องทำอย่างไรหากไม่มีตัวพิมพ์ใดถูกประเมินว่าเป็นจริง
ในตัวอย่างข้างต้น รหัสของเราใช้เฉพาะวันธรรมดาเท่านั้น ดังนั้น หากเป็นวันหยุดสุดสัปดาห์แล้ว โปรแกรมของเราจะไม่ทำอะไรเลย หากเราใช้คำสั่งเริ่มต้นของโค้ด เราสามารถสั่งให้โค้ดของเราดำเนินการใดๆ หากไม่ตรงตามกรณีของเรา
สมมติว่าเราต้องการพิมพ์ข้อความ It’s the weekend!
ไปที่คอนโซลถ้าเป็นวันเสาร์หรือวันอาทิตย์ เราสามารถใช้ตัวอย่างคำสั่ง switch จากด้านบนและโค้ดต่อไปนี้เพื่อทำงานนี้ให้สำเร็จ:
… case 5: cout<<"There is 1 day until the weekend!"; break; default: cout<<"It's the weekend!"; break; …
ตามรหัสนี้ หาก dayOfWeek ไม่เท่ากับกรณีใดๆ ที่เราระบุ—หรือกล่าวอีกนัยหนึ่ง ถ้า dayOfWeek เท่ากับ 6 หรือ 7— เนื้อหาของคำสั่งเริ่มต้นจะถูกดำเนินการ ตัวอย่างเช่น หากวันนี้เป็นวันเสาร์ ข้อความต่อไปนี้จะถูกพิมพ์ไปที่คอนโซล:
It's the weekend!
บทสรุป
คำสั่ง switch ใช้ใน C++ เพื่อประเมินคำสั่งกับผลลัพธ์ที่เป็นไปได้หลายอย่าง หากนิพจน์ใดนิพจน์เหล่านี้ประเมินว่าเป็นจริง โปรแกรมจะดำเนินการโค้ดที่เกี่ยวข้องกับผลลัพธ์นั้น หากไม่มีนิพจน์ใดประเมินว่าเป็นจริง โปรแกรมจะดำเนินการเนื้อหาของคำสั่งเริ่มต้น หากระบุไว้
บทช่วยสอนนี้กล่าวถึงตัวอย่าง วิธีใช้คำสั่งสวิตช์ C++ และวิธีใช้ตัวแบ่ง และคีย์เวิร์ดเริ่มต้นพร้อมสวิตช์ ตอนนี้คุณพร้อมที่จะเริ่มใช้คำสั่ง switch ในโค้ดของคุณอย่างมืออาชีพแล้ว!