สวิตช์ค่าที่ครอบคลุมทุกกรณี
ครอบคลุมทุกกรณีหรือใช้แขนงค่าเริ่มต้น
สวิตช์ค่าที่ครอบคลุมทุกกรณี เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
หน้าที่ของคำสั่งเลือกกรณี
คำสั่ง switch จะเปรียบเทียบค่ากับหลายกรณีและทำงานตามกรณีแรกที่ตรงกัน เป็นทางเลือกที่อ่านง่ายกว่าโซ่เงื่อนไข if/else-if ที่ยาว
let day = 3
switch day {
case 1:
print("Monday")
case 2:
print("Tuesday")
case 3:
print("Wednesday")
default:
print("Other")
}ไม่มีการไหลต่อโดยนัย
ต่างจากภาษาซี กรณีต่าง ๆ ในภาษาสวิฟต์จะไม่ไหลต่อไปยังกรณีถัดไปโดยอัตโนมัติ หลังจากกรณีที่ตรงกันทำงาน คำสั่งเลือกกรณีจะสิ้นสุดลง ไม่จำเป็นต้องใช้ break
let n = 1
switch n {
case 1:
print("one")
case 2:
print("two")
default:
print("many")
}คำสั่งเลือกกรณีต้องครอบคลุมทุกกรณี
คำสั่งเลือกกรณีต้องครอบคลุมค่าที่เป็นไปได้ทั้งหมด สำหรับ Int คุณไม่สามารถระบุค่าทั้งหมดได้ จึงต้องจัดเตรียมกรณี default
let code = 500
switch code {
case 200:
print("OK")
case 404:
print("Not Found")
default:
print("Unhandled: \(code)")
}กรณีเริ่มต้น
กรณี default จะรองรับทุกค่าที่ไม่ตรงกับกรณีก่อนหน้า และต้องอยู่เป็นกรณีสุดท้าย
let grade = "X"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
default:
print("Needs review")
}การเลือกกรณีจากสตริง
คำสั่งเลือกกรณีใช้กับค่าใด ๆ ที่เปรียบเทียบความเท่ากันได้ รวมถึงสตริง
let command = "start"
switch command {
case "start":
print("Starting")
case "stop":
print("Stopping")
default:
print("Unknown command")
}ไม่มีกรณีว่างเปล่า
แต่ละกรณีต้องมีคำสั่งอย่างน้อยหนึ่งคำสั่ง หากคุณต้องการให้กรณีใดไม่ทำอะไรจริง ๆ ให้เขียน break
let n = 2
switch n {
case 1:
print("one")
case 2:
break
default:
print("other")
}
print("done")คำสั่งเลือกกรณีในฐานะคำสั่ง
คำสั่งเลือกกรณีใช้สำหรับทำงานตามคำสั่งต่าง ๆ ไม่ได้คืนค่าโดยตัวมันเอง หากต้องการสร้างค่า ให้กำหนดค่าภายในแต่ละกรณีหรือใช้เพื่อเรียกใช้ฟังก์ชัน
let level = 2
var label: String
switch level {
case 1: label = "low"
case 2: label = "mid"
default: label = "high"
}
print(label)การเลือกกรณีจากค่าบูลีน
คุณสามารถใช้คำสั่งเลือกกรณีกับค่าบูลีน โดยมีกรณี true และ false ไม่จำเป็นต้องมีกรณีเริ่มต้น เพราะทั้งสองกรณีครอบคลุมค่าที่เป็นไปได้ทั้งหมดแล้ว
let isReady = true
switch isReady {
case true:
print("Go")
case false:
print("Wait")
}ชนิดแจกแจงไม่จำเป็นต้องมีกรณีเริ่มต้น
เมื่อใช้คำสั่งเลือกกรณีกับชนิดแจกแจงและจัดการครบทุกกรณีแล้ว คำสั่งนั้นก็ครอบคลุมค่าทั้งหมด จึงไม่จำเป็นต้องมีกรณีเริ่มต้น
enum Direction { case north, south }
let d = Direction.north
switch d {
case .north: print("Up")
case .south: print("Down")
}ตรรกะหลายทางที่อ่านง่าย
คำสั่งเลือกกรณีช่วยจัดระเบียบการตัดสินใจหลายทาง แต่ละผลลัพธ์อยู่ในกรณีที่มีป้ายกำกับของตนเอง จึงดูภาพรวมและขยายต่อได้ง่าย
let score = 72
var result: String
switch score {
case 90...100: result = "A"
case 80..<90: result = "B"
case 70..<80: result = "C"
default: result = "F"
}
print(result)ตำแหน่งของกรณีเริ่มต้น
default ต้องเป็นกรณีสุดท้าย หากวางไว้ก่อนหน้า กรณีถัดไปจะไม่สามารถเข้าถึงได้ ซึ่งภาษาสวิฟต์ไม่อนุญาต
let x = 7
switch x {
case 0:
print("zero")
case 7:
print("seven")
default:
print("something else")
}ตรวจสอบอย่างรวดเร็ว
ทดสอบคำสั่งเลือกกรณีที่ครอบคลุมทุกกรณี
สรุป: คำสั่งเลือกกรณีที่ครอบคลุมค่าทั้งหมด
คำสั่ง switch ของภาษาสวิฟต์จะเลือกกรณีแรกที่ตรงกัน จะไม่ไหลต่อโดยนัย และต้องครอบคลุมค่าที่เป็นไปได้ทั้งหมด ใช้ default กับชนิดข้อมูลที่มีขอบเขตเปิด เช่น Int หรือ String ส่วนชนิดแจกแจงที่จัดการครบทุกกรณีไม่จำเป็นต้องมีกรณีเริ่มต้น
let n = 3
switch n {
case 1: print("a")
default: print("b")
}คำถามที่พบบ่อย
บทเรียน “สวิตช์ค่าที่ครอบคลุมทุกกรณี” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สวิตช์ค่าที่ครอบคลุมทุกกรณี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สวิตช์ค่าที่ครอบคลุมทุกกรณี”
ครอบคลุมทุกกรณีหรือใช้แขนงค่าเริ่มต้น คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “สวิตช์ค่าที่ครอบคลุมทุกกรณี” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สวิตช์ค่าที่ครอบคลุมทุกกรณี
- การจับคู่ช่วงค่าและทูเพิล
- การผูกค่าและอนุประโยค where
- กรณีผสมและ fallthrough