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:

if & else

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

match

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 sebagai else atau default, 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.

20

This website collects cookies to deliver better user experience