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.
Tantangan
MudahDalam 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:
- Parse jumlah baris dari input pertama untuk menentukan jumlah baris yang akan diproses
- Parse angka kondisi untuk melewati baris dari input kedua
- Gunakan perulangan bersarang dengan
continueberlabel untuk memproses data - Untuk setiap baris, periksa nilai setiap kolom dalam baris tersebut
- Jika kamu menemukan angka kondisi untuk melewati baris di kolom mana pun, gunakan
continueberlabel untuk melewati sisa pemrosesan baris tersebut dan lanjut ke baris berikutnya - Untuk baris yang tidak memuat angka kondisi untuk melewati baris, cetak
"Processing row [row_number]: [value1] [value2] [value3] [value4] [value5]" - 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
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Alur Kontrol Lanjutan
switch dengan `fallthrough`Keluar dari Perulangan BersarangMelanjutkan Perulangan TertentuPernyataan `goto`Rangkuman, Kontrol Perulangan Lanjutan4Proyek: Daftar Tugas Sederhana
Menyiapkan ProyekMenambahkan Tugas2Struct dan Method
Mendefinisikan Method pada StructPenerima NilaiPenerima PointerMemilih PenerimaMethod vs FungsiRekap: Perilaku Struct5Map secara Mendalam
Map Berisi StructPointer sebagai Nilai MapMenguji Map NilMembandingkan MapRingkasan: Penghitung Frekuensi Kata8Proyek: Inventaris Sederhana
Gambaran Umum ProyekMemeriksa Stok3Interface (Dasar)
Apa Itu Interface?Mendefinisikan InterfaceMengimplementasikan InterfaceMenggunakan Tipe InterfaceInterface KosongType AssertionType SwitchRingkasan: Bentuk dan PerilakuLatihan sendiri: Compiler Go online