Pelajaran modul (1/2)
Kondisional dan Loop
Aliran kontrol di Rust berkisar pada dua konstruksi utama: ekspresi kondisional untuk memutuskan jalur eksekusi mana yang harus diambil, dan konstruksi loop untuk mengulangi instruksi.
Persyaratan: if sebagai Ekspresi
Di Rust, pernyataan if adalah ekspresi, yang berarti mengembalikan nilai. Kita dapat menggunakan if untuk secara langsung memberikan nilai ke variabel:
let condition = true;
let number = if condition { 5 } else { 6 }; // if/else as an expressionLoop dan Iterasi
Rust menyediakan tiga jenis loop asli: loop, while, dan for.
1. loop (Lingkaran Tak Terbatas)
Kata kunci loop membuat loop tak terbatas yang berlanjut hingga Anda secara eksplisit memerintahkannya untuk berhenti menggunakan break:
let mut count = 0;
loop {
count += 1;
if count == 10 {
break; // Exit the loop
}
}Selain itu, Anda dapat mengembalikan nilai dari loop dengan menempatkannya tepat setelah break:
let result = loop {
count += 1;
if count == 10 {
break count * 2; // Returns 20
}
};2. while (Loop Bersyarat)
Menjalankan blok kode selama kondisi boolean tetap benar:
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}3. for (Iterasi pada Koleksi dan Rentang)
Perulangan for adalah alat yang paling umum dan paling aman untuk melakukan iterasi pada elemen dalam kumpulan atau rentang angka:
// Iterates over numbers 1 through 3 (excluding 4)
for number in 1..4 {
println!("Valore: {}", number);
}
// Iterates including the right boundary using '='
for number in 1..=3 {
println!("Valore: {}", number); // Prints 1, 2 and 3
}Label Lingkaran
Saat menangani loop bersarang, pernyataan break dan continue berlaku untuk loop terdalam secara default. Rust memungkinkan Anda menggunakan label loop (ditulis sebagai 'label_name:) untuk secara eksplisit menghentikan atau melanjutkan loop luar:
let mut count = 0;
'outer: loop {
loop {
if count == 5 {
break 'outer; // Exits the outer loop directly
}
count += 1;
}
}Cobalah sendiri
Deklarasikan variabel bernama angka dengan nilai 7. Selanjutnya, gunakan ekspresi if/else untuk menetapkan nilai 'lebih besar' pada pesan variabel jika angka lebih besar dari 5, atau 'lebih kecil' jika sebaliknya. Terakhir, cetak pesan menggunakan println!.
Tunjukkan petunjuk
Tulis `biarkan pesan = jika angka > 5 { 'lebih besar' } else { 'lebih kecil' };` dan teruskan ke `println!`.
Solusi tersedia setelah 3 upaya
Tulis perulangan for yang mencetak angka dari 1 hingga 5 inklusif (yaitu 1, 2, 3, 4, 5) menggunakan println! pada setiap iterasi.
Tunjukkan petunjuk
Gunakan sintaks rentang inklusif `for i in 1..=5` dan jalankan `println!('{}', i);` di dalam blok.
Solusi tersedia setelah 3 upaya
Tulis sebuah perulangan yang menambah penghitung variabel yang dapat diubah mulai dari 0. Ketika penghitung mencapai 10, keluar dari perulangan yang mengembalikan penghitung dikalikan dengan 5 menggunakan pernyataan break untuk menetapkan nilai ini ke hasil variabel yang tidak dapat diubah. Terakhir, cetak hasilnya.
Tunjukkan petunjuk
Gunakan `biarkan hasil = loop { ... };`. Di dalam loop, tambahkan `counter` dan tambahkan kondisi `if counter == 10 { break counter * 5; }`.
Solusi tersedia setelah 3 upaya