18
Rust - Control Flow (Condition)
Seperti namanya, fungsinya adalah mengatur arus/jalan dari program kita.
Apakah kita harus belok kanan, ataukah kiri,
ataukah putar balik,
itulah bahasa sederhana dari Control Flow
Semua materi merupakan rangkuman belajar.
Untuk bacaan yang lebih langkap & update, dipersilahkan akses pada
The Book
Adapun control flow di Rust meliputi
- condition
-
if
&else
match
-
- iteration/repetition
loop
while
for in
- control flow keyword
break
continue
- juga support control flow label dengan
'label:
fn main() {
let umur = 21;
if umur < 18 {
println!("kemudaan");
} else if umur > 60 {
println!("kayaknya waktunya pensiun");
} else {
println!("boleh lah");
}
// Karena if else
// merupakan expression
// ( dapat mengembalikan nilai )
// kita dapat menggunakannya ke dalam variable
let umur = if umur < 18 {
"kemudaan"
} else if umur > 60 {
"kayaknya waktunya pensiun"
} else {
"boleh lah"
};
// pada contoh di atas
// kita menggunakan
// shadowing pada variable umur
// & expression untuk mengembalikan nilai
println!("{}", umur);
}
- Kita tidak perlu menuliskan kurung sebagai bungkus dari kondisi
- Body kondisi dibungkus dengan kurung kurawal
{ }
- Karena merupakan expression, kita dapat menggunakannya ke dalam variable.
- Kita juga dapat menggunakan expression sebagai return di dalam body kondisinya
- Bila menggunakannya sebagai expression, pastikan nilai return bertipe data sama.
-
if
&else
hanya menerima nilai boolean ke dalam kondisinya, tidak seperti JavaScrip yang dapat menerima nilai truly/falsy
Pada Dasarnya match
seperti switch
pada beberapa bahasa pemrograman lain.
Nah, bedanya di Rust kita harus menangani segala kemungkinan yang terjadi.
fn main() {
let nilai = 90;
match nilai {
0 => println!("Wah ini sih parah"),
1 | 2 | 3 => println!("Niat ngga sih?"),
4..=35 => println!("F"),
31..=50 => {
println!("Hmmm");
println!("E");
},
51..=65 => println!("D"),
66..=75 => println!("C"),
76..=85 => println!("B"),
86..=98 => println!("A"),
99..=100 => println!("A+"),
_ => println!("???"),
}
let boolean = true;
let boolean = match boolean {
false => 0,
true => 1,
};
println!("{}", boolean);
}
- Nilai yang akan diperiksa, tidak perlu tanda kurung
- Kurung kurawa sebagai body pengecekan & kondisi (apabila lebih dari 1 baris).
-
=>
dan,
sebagai batas tiap kondisi -
_
digunakan sebagaielse
ataudefault
, kemungkinan yang lain akan masuk ke dalam kondisi ini -
Kita juga dapat menggunakannya sebagai expression.
pastikan nilai return bertipe data sama
Untuk control flow yang lain akan dibahas secara terpisah.
Terima kasih.
18