Chapter 06

制御構文

mebiusbox
mebiusbox
2023.03.16に更新

📌 if 式

if式は条件によって処理を分岐するものです. if, else, else if が使えます.それぞれに続くものはブロック({})です.

fn main() {
    let number = 6;
    if number % 4 == 0 {
        println!("number is divisible by 4");
    } else if number % 2 == 0 {
        println!("number is divisible by 2");
    } else {
        println!("number is not divisible by 4 or 2");
    }
}

if は式なので,値を返せます.ただし,その場合は返す値が同じ型でなければなりません.

fn main() {
    let condition = true;
    let number = if condition { 5 } else { 6 };
    // let number = if condition { 5 } else { "six" }; Error!
    println!("The value of number is: {}", number);
}

📌 loop 式

無限ループするにはloop式を使います.ループから抜ける場合は break を使います. loop もまた式なので, break に返り値を指定できます.

fn main() {
    let mut counter = 0;
    let result = loop {
        counter += 1;
        if counter == 10 {
            break counter * 2;
        }
    };
    
    println!("The result is {}", result);
}

📌 while 式

条件を満たしている間だけループさせる場合は while 式を使います. while 式は常に () を返します. break は使えますが,値を返すことはできません.

fn main() {
    let mut number = 3;
    while number != 0 {
        println!("{}", number);
        number -= 1;
    };
    
    println!("LIFTOFF!!!");
}

📌 for 式

イテレータを使って,各要素に対して処理を行いたい場合はfor式を使います.for式は常に () を返します.(イテレータとは,連続する一連のデータへのアクセスを提供するオブジェクトのことです)

fn main() {
    let a = [10, 20, 30, 40, 50];
    
    for element in a.iter() {
        println!("the value is: {}", element);
    }
}