Rust 入门 控制流

控制流

if 表达式

  • if 表达式允许您根据所提供的条件来执行不同的代码分支
  • 在 if 表达式中, 与条件相关的代码块就做 分支(arm)
  • 可选: 可以在 if 表达式之后跟随 else 表达式

例子

fn main() {
    let num = 3;
    
    // if-else表达式
    if num < 5 {
        println!("条件为 true");
    } else {
        println!("条件为 false");
    }
    
    // if-else-if 表达式
    if num > 0 {
        println!("正数");
    } else if num == 0 {
        println!("0");
    } else {
         println!("负数");
    }
    
    // 既然是表达式, 那么它就可以被变量锁接收
    let result = if num >= 0 {
        "非负数数"
    } else {
        "负数"
    };
    println!("{} 是 {}", num, result);
}

match 表达式

  • match 表达式类似于其他语言中的 switch
  • match 表达式可以将一个值与这个值可能出现的结果进行比较, 执行不同的分支
  • _通配符: 相当其他语言的 switch 中的 default:

例子

fn main() {
    
    let num = 0;
    match num {
        1 => { println!("星期一") }
        2 => { println!("星期二") }
        3 => { println!("星期三") }
        4 => { println!("星期四") }
        5 => { println!("星期五") }
        6 => { println!("星期六") }
        0 => { println!("星期日") }
        _ => { println!("非地球日") }
    }
    
    // 上面的代码可以简写为
    let week = match num {
        1 => "星期一",
        2 => "星期二",
        3 => "星期三",
        4 => "星期四",
        5 => "星期五",
        6 => "星期六",
        0 => "星期日",
        _ => "非地球日"
    };
    println!("{}", week);
}

loop 循环

  • loop 循环是一个死循环
  • 需要我么显示的调用 break 结束循环
  • 可使用 continue 跳过本次循环

例子

fn main() {
    let mut i = 3;
    loop {
        if i == 0 {
            break;
        }
        println!("输出: {}", i);
        i -= 1;
    }
}

while 循环

  • while 循环是条件循环
  • 可使用 break 提前结束循环
  • 可使用 continue 跳过本次循环

例子

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

for 循环

  • for 循环是迭代器循环
  • 可使用 break 提前结束循环
  • 可使用 continue 跳过本次循环

使用for循环遍历数组

fn main() {
    let array = [10,20,30,50,60];
    for item in array.iter() {
        println!("{}", item);
    }
}

使用for循环完成倒数

fn main() {
    for i in (1..4).rev() {
        println!("{}", i);
    }
}
如果对我分享的内容感兴趣的话  记得关注我得动态
求推荐  求收藏  求转发  求关注
posted @ 2021-06-21 17:19  Delayer  阅读(82)  评论(0编辑  收藏  举报