คำสั่งที่มีป้ายกำกับ
กำหนดเป้าหมายให้ลูปชั้นนอกด้วยป้ายกำกับที่ตั้งชื่อ
คำสั่งที่มีป้ายกำกับ เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
ป้ายกำกับคืออะไร
ป้ายกำกับคำสั่งใช้ตั้งชื่อให้ลูป เพื่อให้คุณระบุเป้าหมายได้อย่างแม่นยำด้วย break หรือ continue
outer: for i in 1...3 {
print("row", i)
}รูปแบบการเขียนป้ายกำกับ
เขียนชื่อป้ายกำกับตามด้วยเครื่องหมายโคลอนไว้ตรงหน้าคำสำคัญของลูปโดยตรง
search: for n in 1...5 {
print(n)
if n == 3 { break search }
}หลักการตั้งชื่อ
ป้ายกำกับเป็นตัวระบุทั่วไป ให้เลือกชื่อที่สื่อความหมาย เช่น outer rowLoop หรือ search
rowLoop: for r in 1...2 {
print("processing row", r)
}break พร้อมป้ายกำกับ
break label จะออกจากลูปที่มีป้ายกำกับนั้น ไม่ใช่เพียงลูปชั้นในสุด
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { break outer }
print(i, j)
}
}continue พร้อมป้ายกำกับ
continue label จะไปยังรอบถัดไปของลูปที่มีป้ายกำกับนั้น
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { continue outer }
print(i, j)
}
}ป้ายกำกับบนลูป while
ลูปทุกชนิดสามารถมีป้ายกำกับได้ รวมถึง while
var i = 0
mainLoop: while i < 5 {
i += 1
if i == 3 { break mainLoop }
print(i)
}เหตุใดป้ายกำกับจึงมีประโยชน์
หากไม่มีป้ายกำกับ break จะออกได้เฉพาะลูปชั้นในสุด ป้ายกำกับช่วยให้คุณควบคุมลูปชั้นนอกได้โดยตรง
grid: for x in 0...2 {
for y in 0...2 {
if x + y == 3 { break grid }
print(x, y)
}
}ป้ายกำกับหลายรายการ
คุณสามารถติดป้ายกำกับให้ลูปที่ซ้อนกันหลายชั้น และระบุเป้าหมายของแต่ละลูปได้อย่างอิสระ
rows: for r in 1...2 {
cols: for c in 1...2 {
if c == 2 { continue rows }
print(r, c)
}
}ป้ายกำกับช่วยสื่อเจตนา
ป้ายกำกับที่ตั้งชื่ออย่างดีจะบอกว่าการกระโดดมีผลต่อลูปใด ทำให้โค้ดที่ซ้อนกันอ่านเข้าใจง่ายขึ้น
scan: for value in [3, 6, 9, 12] {
if value > 8 { break scan }
print(value)
}ขอบเขตของป้ายกำกับ
ป้ายกำกับมองเห็นได้เฉพาะภายในลูปของตนเอง คุณไม่สามารถใช้ break ไปยังป้ายกำกับที่ไม่ได้ครอบคำสั่งปัจจุบันได้
first: for a in 1...2 {
print("a", a)
second: for b in 1...2 {
if b == 2 { break first }
print("b", b)
}
}การใช้ร่วมกับเงื่อนไข
ป้ายกำกับทำงานร่วมกับเงื่อนไขได้เป็นธรรมชาติ เพื่อใช้สร้างตรรกะการค้นหาและหยุดข้ามหลายมิติ
let matrix = [[1, 2], [3, 4]]
var target = -1
find: for row in matrix {
for v in row {
if v == 3 {
target = v
break find
}
}
}
print(target)ตรวจสอบความเข้าใจ
ทดสอบคำสั่งที่มีป้ายกำกับ
สรุป
ป้ายกำกับ (name: ที่อยู่หน้าลูป) ทำให้ break name และ continue name ระบุลูปนั้นโดยเฉพาะ แทนที่จะใช้ลูปชั้นในสุด ป้ายกำกับมีขอบเขตอยู่ภายในลูปของตนเอง และทำให้การควบคุมลูปที่ซ้อนกันชัดเจน
outer: for i in 1...2 {
for j in 1...2 {
if j == 2 { continue outer }
print(i, j)
}
}คำถามที่พบบ่อย
บทเรียน “คำสั่งที่มีป้ายกำกับ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คำสั่งที่มีป้ายกำกับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คำสั่งที่มีป้ายกำกับ”
กำหนดเป้าหมายให้ลูปชั้นนอกด้วยป้ายกำกับที่ตั้งชื่อ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “คำสั่งที่มีป้ายกำกับ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน break และ continue
- คำสั่งที่มีป้ายกำกับ
- การออกจากลูปซ้อนกัน
- การควบคุมลูปในบริบท switch