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
endIni 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 ""
endIni 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.
Tantangan
MudahBaca dua bilangan bulat dari input:
rows- jumlah bariscols- 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 berikutnyaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ringkasan: Logika SederhanaOperator Logika Bagian 3Operator Logika Bagian 47Kalkulator Pembagian Tagihan
Pesan Selamat DatangMengambil input dari Pengguna10FizzBuzz dengan Variasi
Gambaran Umum PermainanMetode FizzBuzz2Variabel dan Tipe Data
Angka dan VariabelTipe Data stringTipe Data booleanTipe Data SymbolMemeriksa Tipe DataKonvensi PenamaanRangkuman: Membuat Variabel5Pengambilan Keputusan
Pernyataan IfIf - ElseRekap: Kalkulator SederhanaIf - Else BersarangPernyataan Unless8Perulangan
For Loop dengan RentangWhile LoopBreakNextRangkuman: FaktorialTimes LoopUntil LoopPerulangan BersarangRangkuman: Input Dinamis3Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaRingkasan: Matematika SederhanaOperator Perbandingan6Dasar Input dan Output
Output dengan putsOutput dengan print dan pOutput dengan VariabelInput dengan getsMethod chompKonversi TipeRangkuman: Kalkulator UsiaRangkuman: Benar atau Salah9method
Mendefinisikan methodParameter methodNilai KembalianRangkuman: Sigma methodRangkuman: Validation methodNilai Default Parameter12Melakukan Perulangan pada Koleksi
Iterator EachEach dengan IndeksMelakukan Perulangan pada StringMap dan CollectLatihan sendiri: Compiler Ruby online