Menu
CoddyTech

Perulangan Bersarang

Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 46 dari 88.

Kamu bisa menempatkan perulangan di dalam perulangan lain untuk membuat perulangan bersarang. Perulangan bagian dalam berjalan sepenuhnya pada setiap iterasi perulangan bagian luar, sehingga pola ini berguna untuk bekerja dengan grid, tabel, atau kombinasi.

rows = 2
cols = 3
for i in 1..rows
  for j in 1..cols
    puts "i=#{i}, j=#{j}"
  end
end

Ini menghasilkan enam baris. Untuk setiap nilai i, perulangan bagian dalam berjalan melalui semua nilai j.

Pertama, i bernilai 1 sementara j berjalan dari 1, 2, 3. Kemudian i menjadi 2 dan j kembali berjalan dari 1, 2, 3. 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
    print "#{row * col} "
  end
  puts ""
end

Ini mencetak kisi produk berukuran 3x3. print menjaga nilai tetap pada baris yang sama, dan puts "" berpindah ke baris baru setelah setiap baris selesai. Kamu juga bisa mencampur berbagai jenis perulangan, seperti perulangan times di dalam perulangan for.

challenge icon

Tantangan

Mudah

Baca dua bilangan bulat dari input:

  1. rows - jumlah baris
  2. cols - jumlah kolom

Gunakan perulangan bersarang untuk mencetak persegi panjang yang terdiri dari tanda bintang (*) dengan ukuran yang diberikan. Setiap baris harus berisi cols tanda bintang yang dipisahkan oleh spasi, dan setiap baris harus berada di barisnya sendiri.

Gunakan print untuk mencetak tanda bintang dalam satu baris dan puts untuk berpindah ke baris berikutnya setelah setiap baris.

Contohnya, jika inputnya adalah 3 dan 4, outputnya harus seperti ini:

* * * *
* * * *
* * * *

Jika inputnya adalah 2 dan 5, outputnya harus seperti ini:

* * * * *
* * * * *

Tidak ada spasi setelah tanda * terakhir pada satu baris.

Gunakan penghitung baru untuk setiap perulangan (misalnya, row untuk baris dan col untuk tanda bintang dalam satu baris), lalu bandingkan dengan rows atau cols. Jangan ubah rows dan cols: setiap baris membutuhkan cols lagi.

Coba sendiri

# Baca input
rows = gets.to_i
cols = gets.to_i

# TODO: Tulis kodemu di bawah ini
# Gunakan perulangan bersarang untuk mencetak persegi panjang dari tanda bintang
# Gunakan print untuk mencetak tanda bintang dalam satu baris dan puts untuk pindah ke baris berikutnya
quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Ruby online