Nested Loop
Termasuk bagian Dasar-Dasar dalam perjalanan Rust di Coddy. Pelajaran 41 dari 75.
Perulangan bersarang adalah perulangan di dalam perulangan lain. Perulangan bagian dalam akan menyelesaikan semua iterasinya untuk setiap satu iterasi perulangan bagian luar. Analogi yang tepat untuk ini adalah jam: untuk setiap jam (perulangan bagian luar), jarum menit (perulangan bagian dalam) harus menyelesaikan siklus penuh selama 60 menit.
Contoh perulangan bersarang:
let rows = 2;
let cols = 2;
for x in 0..rows {
for y in 0..cols {
println!("{} {}", x, y);
}
}
// Ini akan menghasilkan output:
// 0 0
// 0 1
// 1 0
// 1 1Perulangan luar (x) berjalan sebanyak rows kali, dan setiap kali itu, perulangan dalam (y) berjalan sebanyak cols kali. Setiap perulangan memiliki penghitung sendiri: y dimulai kembali dari 0 setiap kali perulangan luar berjalan, sementara rows dan cols tetap sama dan hanya memberi tahu perulangan kapan harus berhenti.
Tantangan
PemulaTulis program yang mencetak persegi panjang dari tanda bintang (*) dengan lebar dan tinggi tertentu.
Input: Dua bilangan bulat: width dan height (kode awal sudah membacanya).
Contoh:
Jika width = 5 dan height = 3, output-nya seharusnya:
*****
*****
*****Jika width = 4 dan height = 6, output-nya seharusnya:
****
****
****
****
****
****Gunakan counter baru untuk setiap perulangan (misalnya i untuk baris dan j untuk tanda bintang di setiap baris), lalu bandingkan dengan height atau width. Jangan ubah height dan width itu sendiri: setiap baris membutuhkan width lagi.
Coba sendiri
use std::io;
fn main() {
let mut width_input = String::new();
let mut height_input = String::new();
io::stdin().read_line(&mut width_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
let width: i32 = width_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
// Tulis kodemu di bawah ini
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaOperator PerbandinganPerbandingan String7Input/Output Dasar
Menampilkan teks di konsolMembaca input penggunaUlasan: Hingga 120Ulasan: Benar atau Salah5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 311Fungsi
Mendeklarasikan FungsiParameter dan ArgumenNilai KembalianBeberapa Nilai KembalianRingkasan: Fungsi SigmaRingkasan: Fungsi Validasi14Iterasi pada Array
Panduan RangeFor Loop yang DisempurnakanBorrow dalam LoopOperasi Umum pada Array3Variabel Bagian 2
Deklarasi TipeKonvensi PenamaanInferensi TipeRangkuman: Inisialisasi VariabelKonversi Tipe9Perulangan
For untuk Menelusuri UrutanWhile LoopBreakContinueNested LoopLabel LoopInfinite LoopRingkasan: Input DinamisLatihan sendiri: Compiler Rust online