0Pricing
Swift Academy · บทเรียน

คำสั่งที่มีป้ายกำกับ

กำหนดเป้าหมายให้ลูปชั้นนอกด้วยป้ายกำกับที่ตั้งชื่อ

คำสั่งที่มีป้ายกำกับ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน break และ continue
  2. คำสั่งที่มีป้ายกำกับ
  3. การออกจากลูปซ้อนกัน
  4. การควบคุมลูปในบริบท switch
← กลับไปที่ Swift Academy