Rust入门-04-控制流

控制流

if表达式

  • 关键字if后跟条件

    • 条件不加括号
    if number < 5 {
        println!("condition was true");
    } else {
        println!("condition was false");
    }
    
    
    • 条件必须是bool值(即结果必须为1或0,不可为其他整数等)

      • Rust 不会自动将非布尔值转换为布尔值
    //则想要 if 代码块只在一个数字不等于 0 时执行,可以这样表达
    if number != 0 {
        println!("number was something other than zero");
    }
    
  • else if 表达式

    • Rust执行第一个条件为真的代码块后,不会再执行之后的代码块
let 语句中使用 if
  • 因为 if 是一个表达式(可以返回值),所以可以在 let 语句的右侧使用它来将结果赋值给一个变量
let condition = true;
let number = if condition { 5 } else { 6 };  //if分支和 else 分支的结果类型要相同
                                             //因为变量只有一个类型
println!("The value of number is: {}", number);

​ 输出结果为

The value of number is: 5
使用循环(loop)重复执行
  • 有三种循环
    • loop
    • while
    • for
  1. loop会一直循环执行代码直到手动停止程序

    loop { 
        println!("again!");    
    }
    

    该代码会反复输出again!

    • 可以使用 ctrl-c 终止无限循环的程序
  • break退出循环

  • continue进行下一次循环

  • 从循环中返回

    • 使用break 表达式加想要返回的值;
    • 该值将从循环中返回
    let mut counter = 0;
    
    let result = loop {
        counter += 1;
        
        if counter == 10 {
            break counter * 2;
        }
    };
        
    println!("The result is {}", result);
    

    输出结果为20

  1. while条件循环

    while number != 0 {
        println!("{}!", number);
    
        number -= 1;
    }
    
  • 当条件为真就执行,否则退出循环
  1. 使用 for 遍历集合
  • 执行for循环直到条件为假

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

​ 使用while时可能会出错

  • 使用for循环倒计时例子

    for number in (1..4).rev() {
        println!("{}!", number);
    }
    println!("LIFTOFF!!!");
    

    该例子使用了rev方法,用来反转区间(range)

循环标签(loop labels)

可以使用标签'label_name: (单引号+标签名+冒号) 来指定你的 breakcontinue 语句作用的循环。

posted @ 2022-04-29 20:09  ragworm  阅读(43)  评论(0)    收藏  举报