Rust循环控制
在某些情况下,需要重复执行一段代码。通常,编程指令是按顺序执行的:函数中的第一条语句首先执行,然后执行第二条,依此类推。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句使我们可以多次执行一个语句或一组语句。下面给出的是大多数编程语言中循环语句的一般形式。
Rust提供了各种类型的循环来满足循环需求:
while
loop
for
确定循环
迭代次数是确定/固定的循环称为确定循环。这for循环是确定循环的实现。
For循环
for循环将代码块执行指定的次数。它可用于迭代一组固定值,例如数组。 for循环的语法如下所示
语法
for temp_variable in lower_bound..upper_bound { //语句 }
for循环的示例如下所示
fn main(){ for x in 1..11{ // 11不包含在内 if x==5 { continue; } println!("x is {}",x); } }
注意:变量x只能在for块内访问。
x is 1 x is 2 x is 3 x is 4 x is 6 x is 7 x is 8 x is 9 x is 10
无限循环
当循环中的迭代次数不确定或未知时,将使用不确定循环。
不确定循环可以使用以下方法实现:
序号 | 名称与说明 |
---|---|
1 | While while 当条件为true时,循环执行指令 |
2 | Loop loop 是一阵(true)不定的循环 |
例子:一会儿
fn main(){ let mut x = 0; while x < 10{ x+=1; println!("inside loop x value is {}",x); } println!("outside loop x value is {}",x); }
输出如下图:
inside loop x value is 1 inside loop x value is 2 inside loop x value is 3 inside loop x value is 4 inside loop x value is 5 inside loop x value is 6 inside loop x value is 7 inside loop x value is 8 inside loop x value is 9 inside loop x value is 10 outside loop x value is 10
例子:循环
fn main(){ //虽然为真 let mut x = 0; loop { x+=1; println!("x={}",x); if x==15 { break; } } }
Thebreak语句用于将控件移出构造。在循环中使用break会使程序退出循环。
x=1 x=2 x=3 x=4 x=5 x=6 x=7 x=8 x=9 x=10 x=11 x=12 x=13 x=14 x=15
Continue语句
Continue语句跳过当前迭代中的后续语句,并将控制权返回到循环的开头。与break语句不同,continue不会退出循环。它终止当前迭代并开始后续迭代。
下面给出了continue语句的示例。
fn main() { let mut count = 0; for num in 0..21 { if num % 2==0 { continue; } count+=1; } println! (" The count of odd values between 0 and 20 is: {} ",count); //输出10 }
上面的示例显示0到20之间的偶数值。如果数量为偶数,则循环退出当前迭代。这是使用continue语句实现的。
0到20之间的奇数计数为10