您好,欢迎来到星星旅游。
搜索
您的当前位置:首页Rust1.3

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);
    }
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务