Menu
CoddyTech

Loop Bersarang

Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 44 dari 78.

Kamu dapat menempatkan perulangan di dalam perulangan lain untuk membuat perulangan bersarang. Perulangan bagian dalam berjalan sepenuhnya untuk setiap iterasi perulangan bagian luar, sehingga ini berguna saat bekerja dengan kombinasi atau pola seperti kisi.

rows <- 3
cols <- 2
for (i in 1:rows) {
  for (j in 1:cols) {
    cat("i =", i, ", j =", j, "\n")
  }
}

Output:

i = 1 , j = 1 
i = 1 , j = 2 
i = 2 , j = 1 
i = 2 , j = 2 
i = 3 , j = 1 
i = 3 , j = 2

Untuk setiap nilai i, perulangan bagian dalam menelusuri semua nilai j. Saat i bernilai 1, j berjalan dari 1 sampai 2. Lalu i menjadi 2, dan j mulai lagi dari 1 sampai 2. rows dan cols tidak pernah berubah: keduanya hanya memberi tahu perulangan kapan harus berhenti.

Contoh praktisnya adalah membuat pola perkalian sederhana:

for (row in 1:3) {
  for (col in 1:3) {
    cat(row * col, " ")
  }
  cat("\n")
}

Output:

1  2  3  
2  4  6  
3  6  9

Perulangan luar mengatur baris, sedangkan perulangan dalam menangani setiap kolom pada baris tersebut. Setelah menyelesaikan setiap baris, kita mencetak baris baru untuk berpindah ke baris berikutnya.

challenge icon

Tantangan

Mudah

Baca dua angka dari input: rows dan cols.

Gunakan perulangan bersarang untuk mencetak persegi panjang berisi angka, dengan setiap sel berisi jumlah nomor baris dan nomor kolomnya. Baris diberi nomor dari 1 sampai rows, dan kolom diberi nomor dari 1 sampai cols.

Cetak setiap baris pada barisnya sendiri, dengan nilai dipisahkan oleh satu spasi. Gunakan cat() untuk output, lalu tambahkan baris baru setelah setiap baris.

Misalnya, jika inputnya adalah 3 dan 4, outputnya akan seperti ini:

2 3 4 5 
3 4 5 6 
4 5 6 7

Pada baris pertama (baris 1), nilainya adalah 1+1=2, 1+2=3, 1+3=4, 1+4=5. Pada baris kedua (baris 2), nilainya adalah 2+1=3, 2+2=4, 2+3=5, 2+4=6, dan seterusnya.

cat() menyisipkan spasi di antara nilai yang kamu berikan, jadi cat(row + col, "") mencetak angka yang diikuti tepat satu spasi.

Gunakan pencacah baru untuk setiap perulangan (misalnya, row untuk baris dan col untuk angka pada sebuah baris), lalu bandingkan dengan rows atau cols. Jangan ubah rows dan cols itu sendiri: setiap baris memerlukan cols lagi.

Coba sendiri

# Baca input
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)

# TODO: Tulis kodemu di bawah ini
# Gunakan perulangan bersarang untuk mencetak persegi panjang dengan setiap sel berisi row + column
# Gunakan cat() untuk mencetak nilai yang dipisahkan spasi, dengan baris baru setelah setiap baris
quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler R online