Menu
CoddyTech

Keluar dari Perulangan Bersarang

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 2 dari 68.

Saat bekerja dengan perulangan bersarang, pernyataan break biasa hanya keluar dari perulangan terdalam. Namun, Go menyediakan label yang memungkinkanmu keluar langsung dari perulangan luar, sehingga kamu dapat mengendalikan struktur perulangan yang kompleks dengan tepat.

Label adalah identifier yang diikuti titik dua dan kamu letakkan sebelum perulangan. Kamu kemudian dapat menggunakan break diikuti nama label untuk keluar dari perulangan tertentu, bahkan dari dalam perulangan bersarang.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 1 {
            break outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
}

Dalam contoh ini, saat kondisi i == 1 && j == 1 terpenuhi, break outer langsung keluar dari perulangan bagian dalam dan bagian luar. Ini sangat berguna saat menelusuri struktur data 2D ketika kamu ingin menghentikan seluruh pencarian begitu menemukan yang kamu cari.

challenge icon

Tantangan

Mudah

Dalam tantangan ini, kamu akan berlatih menggunakan pernyataan break berlabel untuk keluar dari perulangan bersarang saat menelusuri kisi 2D. Kamu perlu menemukan angka target tertentu di dalam kisi dan segera berhenti mencari setelah menemukannya.

Kamu akan menerima dua input:

  • String yang mewakili dimensi kisi dengan format "rows,cols" (misalnya, "3,4")
  • String yang mewakili angka target yang dicari (misalnya, "7")

Kamu diberi kisi 2D berisi angka berikut:

grid := [][]int{
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12},
}

Tugasmu adalah:

  1. Gunakan nilai yang sudah dibaca untukmu dalam kode di atas: rows dan cols (seberapa banyak bagian kisi yang perlu ditelusuri), target, dan grid
  2. Gunakan perulangan bersarang dengan break berlabel untuk menelusuri kisi
  3. Saat menemukan angka target, cetak "Found [target] at position ([row], [col])" dan segera keluar dari kedua perulangan menggunakan break berlabel
  4. Jika kamu menyelesaikan pencarian tanpa menemukan target, cetak "Target [target] not found"

Posisi harus dilaporkan menggunakan indeks berbasis 0 (baris pertama adalah 0, kolom pertama adalah 0).

Coba sendiri

    // TODO: Tulis kodemu di bawah ini
    // Gunakan perulangan bersarang dengan break berlabel untuk mencari target
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online