โครงสร้าง สวิตช์ ใน C++ สามารถใช้โครงสร้างสาขาได้หลากหลาย คล้ายกับโครงสร้าง else if กล่าวคือ สำหรับสถานการณ์ต่างๆ โปรแกรมสามารถตัดสินว่าจะเลือกสาขาใดตามเงื่อนไข ซึ่งเพิ่มความเป็นไปได้ของการใช้งาน วิธีการจะคล้ายกับภาษา C โดยมีโครงสร้างทั่วไปดังนี้
สวิตช์ (นิพจน์) {นิพจน์คงที่ของตัวพิมพ์ 1: นิพจน์คงที่ของตัวพิมพ์ 2: คำสั่ง 2; นิพจน์คงที่ของตัวพิมพ์ 3: //...
โปรดทราบว่าไม่มีอัฒภาคหลังวงเล็บสวิตช์! นี่เป็นข้อผิดพลาดง่าย ๆ สำหรับมือใหม่
ขั้นตอนการดำเนินการ ของโปรแกรมคือการดำเนินการค่าของนิพจน์ในวงเล็บหลังสวิตช์ก่อน จากนั้นจึงเปรียบเทียบกับค่าคงที่ที่อยู่หลังตัวพิมพ์เพื่อดูว่าค่าใดเท่ากัน การดำเนินการจะเริ่มต้นจากคำสั่งหลังเครื่องหมายทวิภาคของ กรณีนั่นคือคำสั่งที่เกี่ยวข้องจะถูกดำเนินการ หลังจากคำสั่งแล้วคำสั่ง case ที่ตามมาก็จะถูกดำเนินการด้วยและไม่ได้กำหนดอีกต่อไปว่าค่าของ case จะเท่ากันหรือไม่ และหากเปรียบเทียบแล้วพบว่าทุกกรณีไม่เท่ากัน ก็จะดำเนินการคำสั่งหลังค่าผิดนัด นี่คือลักษณะการดำเนินการของโครงสร้างสวิตช์
เรามายกตัวอย่างปัญหาจริงเพื่ออธิบายการใช้งานโดยละเอียด คำถามที่ 1783 คือเครื่องตัดสินวันประจำสัปดาห์ โปรดอ่านคำถามด้วยตัวเองก่อนแล้วลองแก้ไขและส่งคำตอบ จากนั้นจึงอ้างอิงถึงคำตอบ
คำตอบอ้างอิงมีดังนี้:
#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;switch(n){case0:cout<<Sunday;break;case1:cout<<Monday;break;case2:cout<<Tuesday;break; case3:cout<<วันพุธ;แบ่ง;case4:cout<<วันพฤหัสบดี;แบ่ง;case5:cout<<วันศุกร์;แบ่ง;case6:cout<<วันเสาร์;แบ่ง;ค่าเริ่มต้น:cout<<inputerror!;}return0;}
โปรดใช้คอมพิวเตอร์ในการเขียนโค้ดด้วยตนเอง และอย่าลืมว่าอย่าอวดดีเกินไป!