คำสั่ง switch สามารถมีหลายกรณีที่มีค่าเหมือนกันใน C ++ ได้หรือไม่?

Dec 17, 2025

ฝากข้อความ

สวัสดีผู้ชื่นชอบเทคโนโลยี! ในฐานะซัพพลายเออร์สวิตช์ ฉันมักจะถูกถามคำถามที่น่าสนใจเกี่ยวกับสวิตช์ ไม่ใช่แค่คำถามทางกายภาพที่เราจัดหาให้เท่านั้น แต่ยังรวมถึงโครงสร้างการเขียนโปรแกรมที่ตั้งชื่อตามสวิตช์เหล่านั้นด้วย คำถามหนึ่งที่โผล่ขึ้นมาเมื่อเร็ว ๆ นี้ก็คือ "คำสั่ง switch สามารถมีหลายตัวพิมพ์ที่มีค่าเท่ากันใน C ++ ได้หรือไม่" มาดำดิ่งลงไปในมันกัน

พื้นฐานของคำสั่ง Switch ใน C ++

ก่อนอื่น เรามาดูกันก่อนว่าคำสั่ง switch คืออะไรในภาษา C++ คำสั่ง switch คือคำสั่ง control flow ในภาษา C++ ที่อนุญาตให้โปรแกรมประเมินนิพจน์ จากนั้นรันคำสั่งใดคำสั่งหนึ่งจากหลายๆ คำสั่งที่เป็นไปได้ตามค่าของนิพจน์นั้น มันเป็นทางเลือกที่สะอาดกว่าโซ่ยาวของถ้า-อย่างอื่นคำสั่งเมื่อคุณเปรียบเทียบตัวแปรตัวเดียวกับค่าคงที่หลายค่า

นี่เป็นตัวอย่างง่ายๆ ของคำสั่ง switch ใน C++:

Electronic Pressure Switch suppliersElectronic Pressure Switch factory

#include <iostream> int main() { int วัน = 3; switch (วัน) { กรณีที่ 1: std::cout << "วันจันทร์"; หยุดพัก; กรณีที่ 2: std::cout << "วันอังคาร"; หยุดพัก; กรณีที่ 3: std::cout << "วันพุธ"; หยุดพัก; ค่าเริ่มต้น: std::cout << "วันที่ไม่ถูกต้อง"; - กลับ 0; -

ในตัวอย่างนี้สวิตช์คำสั่งประเมินตัวแปรวัน- ถ้าวันเท่ากับ 1 จะพิมพ์ว่า "วันจันทร์" ถ้าเป็น 2 จะพิมพ์ว่า "วันอังคาร" เป็นต้น ที่ค่าเริ่มต้นcase จะถูกดำเนินการหากไม่มีสิ่งใดเลยกรณีค่าตรงกับนิพจน์

คุณสามารถมีหลายกรณีที่มีมูลค่าเท่ากันได้หรือไม่

ตอนนี้คำถามใหญ่: คำสั่ง switch สามารถมีหลายกรณีที่มีค่าเดียวกันในภาษา C ++ ได้หรือไม่? คำตอบสั้น ๆ คือไม่ C ++ ไม่อนุญาตให้มีหลายรายการกรณีป้ายกำกับที่มีค่าคงที่เหมือนกันภายในป้ายเดียวสวิตช์คำแถลง. หากคุณพยายามทำสิ่งนี้:

#include <iostream> int main() { int num = 2; สวิตช์ (หมายเลข) { กรณีที่ 1: std::cout << "หนึ่ง"; หยุดพัก; กรณีที่ 2: std::cout << "สอง"; หยุดพัก; กรณีที่ 2: // สิ่งนี้จะทำให้เกิดข้อผิดพลาดในการคอมไพล์ std::cout << "Another Two"; หยุดพัก; ค่าเริ่มต้น: std::cout << "อื่นๆ"; - กลับ 0; -

คุณจะได้รับข้อผิดพลาดในการรวบรวม คอมไพเลอร์จะบ่นเกี่ยวกับค่าตัวพิมพ์ที่ซ้ำกัน เหตุผลเบื้องหลังข้อจำกัดนี้คือเพื่อหลีกเลี่ยงความคลุมเครือ หากมีหลายกรณีที่มีค่าเท่ากัน คอมไพเลอร์จะไม่ทราบว่าจะต้องดำเนินการกรณีใดเมื่อนิพจน์ตรงกับค่านั้น

วิธีแก้ปัญหา

แต่ถ้าคุณต้องการรันโค้ดเดียวกันสำหรับหลายค่าล่ะ? คุณสามารถจัดกลุ่มได้หลายรายการกรณีฉลากด้วยกัน มีวิธีดังนี้:

#include <iostream> int main() { int num = 2; สวิตช์ (หมายเลข) { กรณีที่ 1: std::cout << "หนึ่ง"; หยุดพัก; กรณีที่ 2: กรณีที่ 3: std::cout << "สองหรือสาม"; หยุดพัก; ค่าเริ่มต้น: std::cout << "อื่นๆ"; - กลับ 0; -

ในตัวอย่างนี้ ถ้าในคือ 2 หรือ 3 ซึ่งเป็นโค้ดที่อยู่ในกลุ่มกรณีป้ายกำกับจะถูกดำเนินการ นี่เป็นวิธีที่ถูกต้องและมีประโยชน์อย่างยิ่งในการจัดการกับค่าหลายค่าที่ควรทริกเกอร์การกระทำเดียวกัน

เหตุใดจึงมีความสำคัญในการเขียนโปรแกรมในโลกแห่งความเป็นจริง

ทำความเข้าใจกับกฎเกณฑ์ของสวิตช์คำสั่งเป็นสิ่งสำคัญสำหรับการเขียนโค้ดที่สะอาดและปราศจากข้อบกพร่อง ในโปรเจ็กต์ขนาดใหญ่ ข้อผิดพลาดในการคอมไพล์เพียงครั้งเดียวอาจทำให้เสียเวลาได้มาก โดยรู้ว่าคุณไม่สามารถมีซ้ำได้กรณีค่านิยม คุณสามารถหลีกเลี่ยงข้อผิดพลาดทั่วไปนี้ได้

อีกทั้งความสามารถในการจัดกลุ่มกรณีป้ายกำกับสามารถทำให้โค้ดของคุณกระชับและอ่านง่ายขึ้น แทนที่จะเขียนโค้ดเดียวกันหลายครั้งสำหรับค่าที่ต่างกัน คุณสามารถจัดกลุ่มค่าที่เกี่ยวข้องได้กรณีฉลากด้วยกัน

ผลิตภัณฑ์สวิตช์ของเรา

ในฐานะซัพพลายเออร์สวิตช์ เรานำเสนอสวิตช์คุณภาพสูงที่หลากหลายสำหรับการใช้งานที่หลากหลาย หนึ่งในผลิตภัณฑ์ยอดนิยมของเราคือสวิตช์ความดันอิเล็กทรอนิกส์- สวิตช์นี้ออกแบบมาเพื่อวัดและควบคุมแรงดันในระบบต่างๆ ได้อย่างแม่นยำ มีความน่าเชื่อถือ ติดตั้งง่าย และมาพร้อมกับคุณสมบัติขั้นสูงที่ทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการใช้งานในอุตสาหกรรมและเชิงพาณิชย์

ไม่ว่าคุณจะทำงานในโครงการ DIY ขนาดเล็กหรือระบบอุตสาหกรรมขนาดใหญ่ สวิตช์ของเราถูกสร้างขึ้นมาเพื่อตอบสนองความต้องการของคุณ เรามีความภาคภูมิใจในการนำเสนอผลิตภัณฑ์ชั้นยอดและการบริการลูกค้าที่เป็นเลิศ

ติดต่อเราเพื่อสอบถามความต้องการสวิตช์ของคุณ

หากคุณอยู่ในตลาดสวิตช์ ไม่ว่าจะเป็นสำหรับการเขียนโปรแกรมหรือแอปพลิเคชันทางกายภาพ เรายินดีรับฟังจากคุณ ทีมผู้เชี่ยวชาญของเราสามารถช่วยคุณค้นหาสวิตช์ที่เหมาะกับความต้องการเฉพาะของคุณได้ อย่าลังเลที่จะติดต่อและเริ่มการสนทนาเกี่ยวกับโครงการของคุณ เราอยู่ที่นี่เพื่อให้แน่ใจว่าคุณจะได้รับสวิตช์ที่ดีที่สุดในราคาที่ดีที่สุด

อ้างอิง

  • สตรัวสตรัป, บีจาร์น. "ภาษาการเขียนโปรแกรม C++" แอดดิสัน-เวสลีย์ โปรเฟสชันแนล, 2013
  • ลิปป์แมน, สแตนลีย์ บี., โฮเซ่ ลาจอย และบาร์บารา อี. มู "ซี++ ไพรเมอร์" แอดดิสัน-เวสลีย์ โปรเฟสชันแนล, 2012
ส่งคำถาม
ติดต่อเราสำหรับการสนับสนุนจากผู้เชี่ยวชาญ

คุณสามารถติดต่อเราผ่านทางโทรศัพท์ อีเมล หรือแบบฟอร์มออนไลน์ด้านล่าง และทีมงานของเราจะตอบกลับทันที

ติดต่อเลย!