while循环
fn main() {
let mut number = 1;
while number != 4 {
println!("{}", number);
number += 1;
}
}
注意:目前Rust还没有do-while的用法, 但是do被规定为保留字, 也许以后的版本中会用到
在C语言中for循环使用三元语句控制循环, 但是 Rust 中没有这种用法,需要用 while 循环来代替
//C语言
int i;
for (i = 0; i < 10; i++) {
// 循环体
}
//Rust
let mut i = 0;
while i < 10 {
// 循环体
i += 1;
}
for循环
for循环是最常用的循环结构常, 用来遍历一个线性数据据结构, 比如数组
fn main() {
let a = [10, 20, 30, 40, 50];
for i in a.iter() { //通过迭代器进行循环, a.iter()代表a的迭代器
println!("值为 : {}", i);
}
let b = [10, 20, 30, 40, 50];
for i in 0..5 {
println!("b[{}] = {}", i, b[i]); // for循环其实是可以通过下标来访问数组的:
}
}
loop 循环
某个循环无法在开头和结尾判断是否继续进行循环,必须在循环体中间某处控制循环的进行
如果遇到这种情况,经常会在一个 while(true)循环体里实现中途退出循环的操作
Rust语言有原生的无限循环结构 —— loop
fn main() {
let s = ['R', 'U', 'N', 'O', 'O', 'B'];
let mut i = 0;
loop {
let ch = s[i];
if ch == 'O' {
break;
}
println!("\'{}\'", ch);
i += 1;
}
}
//运行结果:
//'R'
//'U'
//'N'
break
在loop 循环中,break可以像return一样使整个循环退出,同时返回外部一个返回值
loop这样的循环常被用来当作查找工具使用, 如果找到了某个东西当然要将这个结果交出去
fn main() {
let s = ['R', 'U', 'N', 'O', 'O', 'B'];
let mut i = 0;
let location = loop {
let ch = s[i];
if ch == 'O' {
break i;
}
i += 1;
};
println!(" \'O\' 的索引为 {}", location);
}
//运行结果:
// 'O' 的索引为 3