目录
思维导图
一、选择结构
1. if表达式
2. 处理多个条件的else if
3. 使用if在let语句中
二、循环结构
1. loop
2. while循环
3. for循环
4. 使用范围Range进行循环
思维导图
一、选择结构
控制流是编程语言的基本构建块,Rust使用if
表达式和循环来控制代码的执行流程。
1. if
表达式
-
功能:
if
表达式允许根据条件分支执行不同的代码块。 -
示例:
fn main() {let number = 3;if number < 5 {println!("condition was true");[3]} else {println!("condition was false");} }
- 该示例检查变量
number
是否小于5,如果条件为真,输出“condition was true”;否则,输出“condition was false”。
- 该示例检查变量
-
条件要求:
if
条件必须是布尔类型,如果条件不是布尔类型,将会报错。例如:fn main() {let number = 3;if number {println!("number was three");[5]} }
- 这段代码会导致错误,因为
number
是整数而非布尔值。
- 这段代码会导致错误,因为
2. 处理多个条件的else if
- 功能:使用
else if
可以处理多个条件。 - 示例:
fn main() {let number = 6;if number % 4 == 0 {println!("number is divisible by 4");[7]} else if number % 3 == 0 {println!("number is divisible by 3");[7]} else if number % 2 == 0 {println!("number is divisible by 2");[7]} else {println!("number is not divisible by 4, 3, or 2");[7]} }
- 该示例依次检查
number
是否能被4、3或2整除,并输出相应的结果。
- 该示例依次检查
3. 使用if
在let
语句中
- 功能:
if
表达式可以用于let
语句的右侧,将结果赋值给变量。 - 示例:
fn main() {let condition = true;let number = if condition { 5 } else { 6 };println!("The value of number is: {number}"); }
- 在此示例中,
number
的值根据condition
的结果而变化。
- 在此示例中,
二、循环结构
Rust提供了三种循环结构:loop
、while
和for
。
1. loop
- 功能:
loop
用于创建无限循环,直到手动停止或使用break
退出。 - 示例:
fn main() {loop {println!("again!");} }
- 该代码会持续输出“again!”直到手动中断。
2. while
循环
- 功能:
while
循环在条件为真时执行代码块。 - 示例:
fn main() {let mut number = 3;while number != 0 {println!("{number}!");number -= 1;}println!("LIFTOFF!!!");[12][13] }
- 该示例输出从3到1的数字,并在最后输出“LIFTOFF!!!”。
3. for
循环
- 功能:
for
循环用于遍历集合中的每个元素。 - 示例:
fn main() {let a = [10, 20, 30, 40, 50];for element in a {println!("the value is: {element}");} }
- 该代码遍历数组
a
并输出每个元素的值。
- 该代码遍历数组
4. 使用范围Range
进行循环
- 功能:使用
for
循环结合Range
可以更简洁地实现特定次数的循环。 - 示例:
fn main() {for number in (1..4).rev() {println!("{number}!");}println!("LIFTOFF!!!");[12][13] }
- 该代码从3倒计时到1,输出每个数字。
- rev() 用于反转迭代器的顺序。
tips:
- 选择结构的条件必须是bool类型;
- 还有一种选择结构:match表达式;
- 建议使用for循环遍历集合;
- loop + break:可以在退出循环时添加返回值;
- loop + return:不仅退出循环还会退出函数;
- loop + break + 标签:可以实现嵌套循环间的跳转。