Perulangan Bersarang
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 49 dari 109.
Perulangan Bersarang adalah perulangan yang ditempatkan di dalam perulangan lain. Perulangan bagian dalam berjalan sepenuhnya untuk setiap iterasi perulangan bagian luar.
Mari buat tabel perkalian untuk angka 1-3 menggunakan perulangan bersarang:
rows := 3
cols := 3
for i := 1; i <= rows; i++ {
for j := 1; j <= cols; j++ {
fmt.Printf("%d×%d=%d\t", i, j, i*j)
}
fmt.Println()
}Setelah menjalankan kode ini, kita mendapatkan tabel perkalian dengan setiap baris mewakili satu nilai dari variabel perulangan luar (i) yang dikalikan dengan semua nilai variabel perulangan dalam (j). Output akan ditampilkan di layar:
1×1=1 1×2=2 1×3=3
2×1=2 2×2=4 2×3=6
3×1=3 3×2=6 3×3=9 Mari pahami cara kerjanya langkah demi langkah:
Pertama, perulangan luar menetapkan i=1 dan perulangan dalam berjalan sampai selesai:
i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"Setelah perulangan bagian dalam selesai, kita mencetak baris baru dengan fmt.Println().
Lalu, perulangan luar menetapkan i=2 dan perulangan dalam dimulai kembali, dengan j dimulai lagi dari 1:
i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"Terakhir, perulangan luar menetapkan i=3 dan perulangan dalam berjalan untuk terakhir kalinya:
i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"Setiap perulangan memiliki penghitungnya sendiri (i dan j), sedangkan rows dan cols tidak pernah berubah: keduanya hanya memberi tahu perulangan kapan harus berhenti. Pola ini sangat berguna untuk mengolah tabel data atau membuat struktur seperti kisi.
Tantangan
PemulaDalam tantangan ini, kamu akan berlatih menggunakan perulangan bersarang untuk mencetak pola sederhana. Perulangan luar akan mengiterasi baris, dan perulangan dalam akan mengiterasi kolom untuk membuat kisi kecil berisi karakter.
Lengkapi perulangan bersarang untuk mencetak kisi 3x3 berisi tanda bintang (*). Setiap tanda bintang harus diikuti spasi, sehingga setiap baris akan terlihat seperti * * * (dengan spasi di akhir). Output yang diharapkan adalah:
* * * * * * * * *
Gunakan penghitung baru untuk setiap perulangan (misalnya i untuk baris dan j untuk tanda bintang dalam satu baris) dan bandingkan dengan rows atau columns. Jangan ubah rows dan columns itu sendiri: setiap baris membutuhkan columns lagi.
Coba sendiri
package main
import "fmt"
func main() {
// Jumlah baris dan kolom dalam kisi kita
rows := 3
columns := 3
// TODO: Buat perulangan bersarang untuk mencetak kisi berisi tanda bintang (*)
// Perulangan luar harus mengulangi setiap baris
// Perulangan dalam harus mengulangi setiap kolom
for i := 0; i < rows; i++ {
// Tambahkan perulangan dalammu di sini untuk mencetak tanda bintang di setiap kolom
// Ini mencetak baris baru setelah setiap baris
fmt.Println()
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan dan Logika
Operator Perbandingan, Bagian 1Operator Perbandingan, Bagian 2Operator AND LogikaOperator OR LogikaOperator NOT LogikaDasar Prioritas OperatorRingkasan, Membuat Perbandingan7Alur Kontrol: Perulangan
Penjelasan tentang `for` loop`for` loop Dasar`for` loop dengan Kondisi SajaKata Kunci `break`Kata Kunci `continue`Perulangan BersarangRangkuman: Mengulang Tindakan2Variabel dan Tipe Data Dasar
Apa itu variabelInferensi Tipe dengan `:=`Bilangan Bulat (int)Bilangan Floating-PointBooleanstringNilai NolKonstantaKonvensi PenamaanRangkuman: Variabel dan Tipe5Input/Output Dasar
Output TerformatKata Kerja FormatMencetak Tipe DataMendapatkan Input Dasar dari PenggunaRangkuman: Input dan Output8Fungsi
Memahami FungsiMendeklarasikan FungsiMemanggil FungsiParameter FungsiMengembalikan Satu NilaiMengembalikan Beberapa NilaiNilai Kembalian BernamaDasar Cakupan FungsiRangkuman: Membuat Kodemu Dapat Digunakan Kembali3Operator Dasar
Operator AritmetikaOperator PembagianOperator ModuloOperator PenugasanOperator Penugasan GabunganInkrementasi dan DekrementasiRangkuman: Perhitungan6Alur Kontrol: Percabangan
Pernyataan `if`Kata Kunci `else`Kata Kunci `else if`Shadowing Variabel dalam `if`Menginisialisasi VariabelPernyataan `switch``switch` dengan Ekspresi`switch` tanpa EkspresiKata Kunci `fallthrough`Ringkasan: Membuat KeputusanLatihan sendiri: Compiler Go online