DEV Community

Abdul Ghofur
Abdul Ghofur

Posted on

2 1

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);
}
Enter fullscreen mode Exit fullscreen mode
  • 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);

}
Enter fullscreen mode Exit fullscreen mode
  • 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.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay