学习 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 中的所有权和内存管理。欢迎大家持续关注,一起学习哦。

相关推荐
2501_944521598 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理8 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
wangchunyu11410 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
程序 代码狂人11 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
meiying883812 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
楚山之石12 小时前
【Medical Image Analysis】深度学习医学图像合成综述:伪CT、合成MRI与合成PET的架构、性能与临床边界
图像处理·人工智能·学习·mr·mri
@大迁世界13 小时前
告别 Go,拥抱 Rust
开发语言·golang·rust
SEO_juper13 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
学逆向的13 小时前
C 指针常量与常量指针
c语言·开发语言·网络安全
Li_RuiQi13 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉