Loop Bersarang
Termasuk bagian Dasar-Dasar dalam perjalanan Kotlin di Coddy. Pelajaran 52 dari 93.
Kamu bisa menempatkan perulangan di dalam perulangan lain untuk membuat perulangan bersarang. Perulangan bagian dalam berjalan sepenuhnya untuk setiap iterasi perulangan bagian luar.
val rows = 2
val cols = 3
for (i in 1..rows) {
for (j in 1..cols) {
println("i=$i, j=$j")
}
}
// output:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3Saat i bernilai 1, perulangan bagian dalam berjalan sebanyak cols kali (j berjalan dari 1 hingga 3). Lalu i menjadi 2, dan perulangan bagian dalam dimulai lagi, dengan j berjalan dari 1 hingga 3 lagi. Hasilnya, total ada 2 × 3 = 6 iterasi. rows dan cols tidak pernah berubah: keduanya hanya memberi tahu perulangan kapan harus berhenti.
Perulangan bersarang biasanya digunakan untuk membuat pola atau bekerja dengan struktur seperti kisi:
for (row in 1..3) {
for (col in 1..row) {
print("*")
}
println()
}
// output:
// *
// **
// ***Di sini, rentang perulangan bagian dalam bergantung pada variabel perulangan bagian luar, sehingga membentuk pola segitiga. Fungsi print() menampilkan output tanpa baris baru, sedangkan println() berpindah ke baris berikutnya setelah setiap baris.
Tantangan
SedangBaca sebuah bilangan bulat n dari input. Gunakan perulangan bersarang untuk mencetak tabel perkalian untuk angka 1 sampai n.
Untuk setiap baris i dari 1 sampai n, cetak hasil perkalian i * 1, i * 2, ..., i * n yang dipisahkan oleh spasi, lalu akhiri dengan baris baru.
Misalnya, jika inputnya 3, outputnya harus seperti ini:
1 2 3
2 4 6
3 6 9Jika inputnya 4, outputnya harus seperti ini:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16Gunakan print() dengan spasi untuk menampilkan nilai pada baris yang sama, dan println() untuk berpindah ke baris berikutnya.
Gunakan penghitung baru untuk setiap perulangan (misalnya i untuk baris dan j untuk kolom), lalu bandingkan keduanya dengan n. Jangan ubah n itu sendiri: setiap baris membutuhkannya lagi.
Coba sendiri
fun main() {
// Baca input
val n = readLine()!!.toInt()
// TODO: Tulis kodemu di bawah ini
// Gunakan perulangan bersarang untuk mencetak tabel perkalian
// Gunakan print() dengan spasi untuk mencetak nilai pada baris yang sama
// Gunakan println() untuk berpindah ke baris berikutnya
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPenugasan GabunganOperator PerbandinganRingkasan: Matematika Sederhana7Dasar input dan output
Fungsi PrintlnTemplate stringInput ReadLineKonversi Tipe DataRingkasan: Tahun hingga PensiunRingkasan: Benar atau Salah10Fungsi
Deklarasikan FungsiParameter dan ArgumenNilai KembalianArgumen BernamaNilai DefaultFungsi Ekspresi TunggalUlasan: Fungsi SigmaUlasan: Fungsi Validasi5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Operator Logika Bagian 3Ternary dengan Ekspresi ifRangkuman: Logika Sederhana8Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input11FizzBuzz dengan Sentuhan Unik
Gambaran Umum GameFungsi FizzBuzz3Kemungkinan Null
Apa Itu Keamanan NullTipe yang Dapat Bernilai NullOperator Pemanggilan AmanOperator ElvisDasar Tantangan FungsiPenegasan Bukan NullRangkuman: Akses Aman6Pengambilan Keputusan
Pernyataan IfIf - ElseIf sebagai EkspresiEkspresi WhenWhen dengan RentangUlasan - Kalkulator Sederhana9Perulangan
For loopWhile loopDo-while loopBreakContinueRentang dalam loopLoop BersarangRingkasan: FaktorialRingkasan: Input DinamisLatihan sendiri: Playground Kotlin