Rust1.3

循环

Rust有 for、while、loop三种循环。

for

Rust的循环还是有很多独特的地方的,在for循环中,rust是采用了迭代器的方式实现的,有点像Python和js的。

for x in iterator{

...

}

上面的表达式是一个迭代器。迭代器提供一系列的元素。每个元素是迭代的一次循环。接着迭代器的值被绑定到变量 x,它是循环体控制循环的主体。一旦循环体执行结束,就从迭代器中获取下一个,接着执行下一次循环。当迭代器中没有更多的值可以获取的时候,for 循环结束。

例:

for i in 0..10 {

    println!("{}", i);
}

结果为:

0
1
2
3
4
5
6
7
8
9

0..10表达式取一个开始和结束的位置,然后给出一个含有这之间值得迭代器。当然它不包括上限值,所以我们的循环会打印0到9,而不是到10。
rust的for循环提供了记录循环次数的函数 enumerate() 。

例:

for (j,i) in (10..15).enumerate() {
    println!("第{}次是{}。", j,i);
}

结果为:

第0次是10。
第1次是11。
第2次是12。
第3次是13。
第4次是14。

while

对于while循环就基本和C一样了。

//绑定一个i32可变变量。
let mut x = 5;
//绑定一个bool可变变量。
let mut boolen = false;

while !boolen {
    x -= 1;

    println!("{}", x);

    if x * 1 == 0 {
        boolen = true;
    }
}

break 和 continue

break和continue在rust中和C/C++、Python、Java等语言是一样的用法,下面在使用中也会讲到,因此就不讲啦!

loop

Rust的loop可以说是十分有用的,它是一个无限循环和C的goto语句中的loop不同。

例:

let mut num = 0;

loop {

    num += 5;

    if num == 50 { break; }
}

标签(Label)

C语言的goto语句让人既爱又恨,但是在rust中开发者却通过定义标签解决了这个问题。通过对循环定义唯一的标签,让break或者continue跳转到指定的循环。

例:

'one: for x in 0..10{
    'two: for i in 2..12{
        if x % 2 == 0{continue 'one;}
        if i >= 10{break 'two;}
        println!("i is :{} x is :{}",i,x);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值