Skip to content

Rust 流程控制

条件分支

条件分支是语句也是表达式

可作为语句使用,也可将返回值赋值给变量

rs
fn main() {
    let 返回值 = if 条件 { 表达式或值 } else { 表达式或值 };      
}

if

rs
fn main() {
    if 条件 {                       
        // ...
    }
}
例子
rs
fn main() {
    let num = 10;                  

    if num % 2 == 0 {
        println!("偶数");
    }
}

if...else

rs
fn main() {
    if 条件 {                       
        // ...
    } else {
        // ...
    }
}
例子
rs
fn main() {
    let num = 10;                   
    let condition: bool = num % 2 != 0;

    if condition {
        println!("奇数");
    } else {
        println!("偶数");
    }

    let result = if condition { "奇数" } else { "偶数" };
    println!("{}", result);
}

if...else if

rs
fn main() {
    if 条件1 {                       
        // ...
    } else if 条件2 {
        // ...
    } else if 条件3 {
        // ...
    }
}

if...else if...else

rs
fn main() {
    if 条件1 {                       
        // ...
    } else if 条件2 {
        // ...
    } else {
        // ...
    }
}

循环分支

for...in...

rs
fn main() {
    for 变量 in 可迭代对象 {             
        // ...
    }
}
例子:遍历数组元素
rs
fn main() {
    for e in [1, 2, 3] {               
        println!("{}", e);
    }
}

for...in...Range

rs
fn main() {
    for x in 起始值..终止值 {                     
        // ...
    }

    for x in 起始值..=终止值 {
        // ...
    }

    for x in (起始值..终止值).step_by(步长) {
        // ...
    }

    for x in (起始值..终止值).rev() {
        // ...
    }
}
例子:遍历范围 ( Range )
rs
fn main() {
    for e in 0..4 {                             
        print!("{}", e);    // 0123
    }

    for e in 0..=4 {
        print!("{}", e);    // 01234
    }

    for e in (0..4).rev() {
        print!("{}", e);    // 3210
    }

    for e in 'a'..='e' {
        print!("{}", e);    // abcde
    }
}

loop...

rs
fn main() {
    loop {                               
        // ...
        if 条件 {
            break;
        }
    }
}

while...

rs
fn main() {
    while 条件 {                        
        // ...
        // 中止条件的变量迭代
    }
}
例子:遍历打印 10 次
rs
fn main() {
    let mut num: i32 = 0;               

    while num < 10 {
        println!("{}", num);
        num += 1;
    }
}