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.

    30

    This website collects cookies to deliver better user experience

    Rust - Control Flow (Condition)