0Pricing
Swift Academy · Pelajaran

Keluar dari Perulangan Bersarang

Gunakan label untuk keluar dari beberapa tingkat perulangan.

Keluar dari Perulangan Bersarang adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Masalah Perulangan Bertingkat

break biasa di dalam perulangan bertingkat hanya keluar dari perulangan dalam, sehingga perulangan luar tetap berjalan.

for i in 1...3 {
    for j in 1...3 {
        if j == 2 { break }
        print(i, j)
    }
}

break Berlabel Menyelesaikannya

Pasang label pada perulangan luar dan gunakan break outer untuk keluar dari kedua perulangan sekaligus.

outer: for i in 1...3 {
    for j in 1...3 {
        if i == 2 && j == 2 { break outer }
        print(i, j)
    }
}
print("escaped")

Mencari dalam Grid 2D

break berlabel sangat cocok untuk menghentikan pencarian 2D segera setelah target ditemukan.

let grid = [[1, 2, 3], [4, 5, 6]]
var position = (-1, -1)
find: for r in 0..<grid.count {
    for c in 0..<grid[r].count {
        if grid[r][c] == 5 {
            position = (r, c)
            break find
        }
    }
}
print(position)

Tanpa Label: Flag

Alternatif tanpa label menggunakan Flag boolean, tetapi cara ini lebih panjang dan lebih rentan terhadap error.

var stop = false
for i in 1...3 {
    for j in 1...3 {
        if i + j == 4 { stop = true; break }
        print(i, j)
    }
    if stop { break }
}

Label Lebih Bersih

Dibandingkan dengan Flag, break berlabel menyatakan maksud secara langsung dan menghindari pemeriksaan tambahan setelah perulangan dalam.

outer: for i in 1...3 {
    for j in 1...3 {
        if i + j == 4 { break outer }
        print(i, j)
    }
}

Tiga Tingkat Penyarangan

Label dapat digunakan hingga tiga tingkat atau lebih; targetkan perulangan mana pun yang perlu Anda hentikan.

top: for a in 1...2 {
    for b in 1...2 {
        for c in 1...2 {
            if c == 2 { break top }
            print(a, b, c)
        }
    }
}

continue Berlabel dalam Penyarangan

Gunakan continue label untuk melompat ke iterasi berikutnya dari perulangan luar, meskipun berada jauh di dalam.

rows: for r in 1...3 {
    for c in 1...3 {
        if c == 2 { continue rows }
        print(r, c)
    }
}

Menggabungkan Keduanya

Anda dapat mencampur break dan continue berlabel dalam struktur bertingkat yang sama untuk mendapatkan kendali yang lebih rinci.

scan: for i in 1...3 {
    for j in 1...3 {
        if j == 1 { continue }
        if i == 3 { break scan }
        print(i, j)
    }
}

Kinerja Keluar Lebih Awal

Keluar segera setelah jawaban ditemukan menghindari iterasi yang sia-sia pada kumpulan data besar.

let data = Array(1...100)
var firstBig = -1
loop: for chunk in stride(from: 0, to: data.count, by: 10) {
    for k in chunk..<min(chunk + 10, data.count) {
        if data[k] > 25 {
            firstBig = data[k]
            break loop
        }
    }
}
print(firstBig)

Mengembalikan Nilai dari Fungsi

Di dalam fungsi, return merupakan cara bersih lainnya untuk keluar dari semua perulangan sekaligus.

func findPair(_ target: Int) -> (Int, Int)? {
    for i in 1...5 {
        for j in 1...5 {
            if i * j == target { return (i, j) }
        }
    }
    return nil
}
print(findPair(12) ?? (-1, -1))

Memilih Pendekatan

Pilih break berlabel untuk keluar dari perulangan bertingkat di tempat, atau return saat berada di dalam fungsi dan ingin keluar sepenuhnya.

outer: for x in 1...3 {
    for y in 1...3 {
        if x * y >= 4 { break outer }
        print(x, y)
    }
}

Pemeriksaan Singkat

Uji pengendalian perulangan bertingkat.

Ringkasan

break biasa hanya keluar dari perulangan terdalam. Beri label pada perulangan luar dan gunakan break label untuk keluar dari semua tingkat sekaligus, yang lebih bersih daripada menggunakan Flag boolean. Di dalam fungsi, return juga dapat keluar dari semuanya.

outer: for i in 1...3 {
    for j in 1...3 {
        if j == 2 { break outer }
        print(i, j)
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Keluar dari Perulangan Bersarang” gratis?

Ya — teks lengkap “Keluar dari Perulangan Bersarang” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Keluar dari Perulangan Bersarang”?

Gunakan label untuk keluar dari beberapa tingkat perulangan. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Keluar dari Perulangan Bersarang” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar break dan continue
  2. Pernyataan Berlabel
  3. Keluar dari Perulangan Bersarang
  4. Pengendalian Perulangan dalam Konteks switch
← Kembali ke Swift Academy