学习 Rust 的第五天:了解程序的基本控制流程

大家好呀

欢迎来到这个学习 Rust 的 30 天系列的第五天,今天我们将深入了解 Rust 中的控制流。

控制流,顾名思义,根据条件来 控制程序的流程

If 表达式

当你想要在满足条件时执行一段代码块时,可以使用 if 表达式。

示例

rust 复制代码
fn main(){  
  let age: u32 = 17;  
  if age > 18{  
    println!("你已经成年了");  
  }  
}

这个程序会检查年龄是否大于 18。如果是,它会输出"你已经成年了"。

那如果条件不满足时要输出什么呢?

Else 表达式

当某个条件不满足时,可以使用 else 表达式来执行一段代码块。

rust 复制代码
fn main(){  
  let age: u32 = 17  
  if age>18{  
    println!("你已经成年了");  
  }else{  
    println!("你还不是成年人");  
  }  
}

这个程序会检查年龄是否大于 18。如果是,它会输出"你已经成年了",否则会输出"你还不是成年人"。

Else If 表达式

else if 表达式可以用来检查多个条件。例如:

rust 复制代码
fn main(){  
  let number = 92;  
  if number % 9 == 0{  
    println!("数字可以被 9 整除");  
  } else if number % 5 == 0{  
    println!("数字可以被 5 整除");  
  }else if number % 3 == 0{  
    println!("数字可以被 3 整除");  
  }else{  
    println!("数字不能被 9、5、3 整除");  
  }  
}

循环

循环用于重复执行一段代码,直到明确指定停止,或满足某个条件。

loop 关键字

loop 关键字告诉 Rust 运行一段代码块,直到使用 break 关键字停止。

rust 复制代码
fn main() {  
    let mut i: u32 = 0;  
    let mut j: i32 = 10;

    // 带有 break 语句的有标签的无限循环  
    'counting_down: loop {  
        if j >= 0 {  
            println!("{}", j);  
            j -= 1;  
        } else {  
            println!("倒计时循环完成");  
            break 'counting_down;  
        }  
    }  
}

解释:

  • main 函数是 Rust 程序的入口点。
  • j 是类型为 i32(有符号 32 位整数)的变量,初始化为 10。
  • 代码进入一个带有标签的无限循环,标记为 'counting_down
  • 循环内部有一个条件语句,检查 j 是否大于或等于 0。
  • 如果为真,则使用 println! 打印 j 的当前值,并将 j 减 1。
  • 如果为假(当 j 小于 0 时),则打印一条消息并跳出标记为 'counting_down 的循环。
  • 循环会一直进行,直到执行 break 'counting_down; 语句。
  • 标签 'counting_down 用于指定要跳出的循环,特别是在处理嵌套循环时。

While 循环

while 循环会在指定条件为真时重复执行一段代码块。

示例:
rust 复制代码
fn main(){  
  let mut num: u8 = 4;  
  while num!=0 {  
    println!("{}",num);  
    num-=1;  
  }  
}

解释:

  • 声明一个可变变量 num,并将其初始化为值 4。它的类型是 u8(无符号 8 位整数)。
  • 代码进入一个 while 循环,条件为 num != 0
  • 循环内部使用 println! 打印 num 的当前值。
  • 然后使用 num -= 1; 语句将 num 的值减 1。
  • 循环会在条件 num != 0 为真时继续。
  • 程序会按照从初始值(4)开始的递减顺序打印 num 的值,直到变为 0。
  • 一旦 num 变为 0,循环结束,程序继续执行循环外的任何后续代码。

For 循环

for 循环会遍历范围、集合或迭代器,对每个迭代执行一段代码块。

示例:
rust 复制代码
fn main(){  
  // 数组的 for 循环  
  let array: [u8; 10] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];  
  println!("使用 for 循环访问数组");  
    for item in array {  
        println!("{}", item);  
    }

  // 范围内的 for 循环  
  println!("范围内的 for 循环 ");  
    for number in 0..=5 {  
        println!("{number}");  
    }  println!("范围内的 for 循环(反向)");  
    for number in (0..=5).rev() {  
        println!("{number}");  
    }  
}

总结

控制流是任何编程语言中非常重要的一部分。这也是我把一整天都用来学习这个的原因。明天我会继续探讨 Rust 中的所有权和内存管理。欢迎大家持续关注,一起学习哦。

相关推荐
bryant_meng12 分钟前
【python】OpenCV—Image Moments
开发语言·python·opencv·moments·图片矩
若亦_Royi36 分钟前
C++ 的大括号的用法合集
开发语言·c++
资源补给站2 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
eybk2 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
FF在路上2 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
众拾达人3 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.3 小时前
Mybatis-Plus
java·开发语言
不良人天码星3 小时前
lombok插件不生效
java·开发语言·intellij-idea