010 Rust流程控制
条件语句
if-else
fn main() {let number = 1;if number < 2 {println!("条件为 true");} else {println!("条件为 false");}
}
if-else if-else
fn main() {let a = 5;let b;if a > 0 {b = 1;} else if a < 0 {b = -1;} else {b = 0;}println!("b is {}", b);
}
Rust 中的条件表达式必须是 bool 类型,例如下面的程序是错误的:
fn main() {let number = 3;if number { // 报错,expected `bool`, found integerrustc(E0308)println!("YesNo");}
}
C/C++ 语言中的条件表达式用整数表示,非 0 即真,但这个规则在Rust语言中是被禁止的。
循环语句
while循环
fn main() {let mut = 1;while != 5 {println!("{}", a);a += 1;}println!("EXIT");
}
for 循环
在Rust语言中没有像C++的for循环,如:
int i;
for (i = 0; i < 10; i++) {// 循环体
}
需要用 while 循环来代替:
fn main() {let mut i = 0 ;while i < 10 {// 循环体i += 1;}println!("{}", add(1,2));
}
for-in
fn main() {let a = [10, 20, 30, 40, 50];for i in a.iter() { // a.iter 是迭代器println!("值为 : {}", i);}
当然,for 循环其实是可以通过下标来访问数组的:
fn main() {
let a = [100, 200, 300, 400, 500];for i in 0..5 {println!("a[{}] = {}", i, a[i]);}
}
运行结果:
a[0] = 100
a[1] = 200
a[2] = 300
a[3] = 400
a[4] = 500
loop 循环
fn main() {let a = [10, 20, 30, 40, 50, 60];let mut i = 0;let result = loop {let b = a[i];if b == 40 {break i;} i += 1;};println!("i={}", result);
}
运行结果:
i=3
break类似于 return 一样使整个循环退出并给返回一个值。