Menu
CoddyTech

Melanjutkan Perulangan Tertentu

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

Sama seperti kamu dapat menggunakan label dengan break untuk keluar dari perulangan tertentu, Go juga memungkinkanmu menggunakan label dengan pernyataan continue. continue berlabel melewati iterasi saat ini dari perulangan yang ditentukan dan melompat ke iterasi berikutnya.

Ini sangat berguna dalam perulangan bersarang ketika kamu ingin melewati sisa iterasi saat ini dari perulangan luar dari dalam perulangan dalam, bukan hanya melanjutkan perulangan dalam.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 0 {
            continue outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
    fmt.Println("End of outer loop iteration")
}

Dalam contoh ini, saat i == 1 && j == 0, pernyataan continue outer melewati sisa iterasi saat ini dari perulangan luar, termasuk perulangan dalam dan pesan "Akhir iterasi perulangan luar". Program lalu langsung beralih ke iterasi perulangan luar berikutnya, saat i menjadi 2.

challenge icon

Tantangan

Mudah

Dalam tantangan ini, kamu akan berlatih menggunakan pernyataan continue berlabel untuk mengontrol eksekusi perulangan bersarang. Kamu sedang membangun sistem pemrosesan data yang perlu melewati iterasi perulangan luar tertentu berdasarkan kondisi yang ditemukan dalam perulangan dalam.

Kamu akan menerima dua input:

  • String yang mewakili jumlah baris yang akan diproses (misalnya, "4")
  • String yang mewakili angka kondisi untuk melewati baris (misalnya, "3")

Kamu diberikan array data 2D berikut:

data := [][]int{
    {1, 2, 3, 4, 5},
    {6, 7, 8, 9, 10},
    {11, 12, 13, 14, 15},
    {16, 17, 18, 19, 20},
    {21, 22, 23, 24, 25}
}

Tugasmu adalah:

  1. Parse jumlah baris dari input pertama untuk menentukan jumlah baris yang akan diproses
  2. Parse angka kondisi untuk melewati baris dari input kedua
  3. Gunakan perulangan bersarang dengan continue berlabel untuk memproses data
  4. Untuk setiap baris, periksa nilai setiap kolom dalam baris tersebut
  5. Jika kamu menemukan angka kondisi untuk melewati baris di kolom mana pun, gunakan continue berlabel untuk melewati sisa pemrosesan baris tersebut dan lanjut ke baris berikutnya
  6. Untuk baris yang tidak memuat angka kondisi untuk melewati baris, cetak "Processing row [row_number]: [value1] [value2] [value3] [value4] [value5]"
  7. Untuk baris yang memuat angka kondisi untuk melewati baris, cetak "Skipping row [row_number] due to condition"

Nomor baris harus dilaporkan menggunakan indeks berbasis 0 (baris pertama adalah 0). Proses hanya jumlah baris yang ditentukan dalam input pertama, dan periksa hanya 5 kolom pertama dari setiap baris.

Coba sendiri

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // Baca input
    var rowsInput string
    var skipConditionInput string
    fmt.Scanln(&rowsInput)
    fmt.Scanln(&skipConditionInput)
    
    // Urai input
    numRows, _ := strconv.Atoi(rowsInput)
    skipCondition, _ := strconv.Atoi(skipConditionInput)
    
    // Array data 2D yang disediakan
    data := [][]int{
        {1, 2, 3, 4, 5},
        {6, 7, 8, 9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20},
        {21, 22, 23, 24, 25},
    }
    
    // TODO: Tulis kodemu di bawah ini
    // Gunakan perulangan bersarang dengan continue berlabel untuk memproses data
    // Periksa setiap baris untuk menemukan angka kondisi yang harus dilewati
    // Cetak pesan yang sesuai berdasarkan apakah kondisi ditemukan
    
}
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