if 表达式
举例:
//if表达式fn main(){ let x = 7; if x<5 { println!("小于"); } else if x>5{ println!("大于"); } else{ println!("等于"); }}
与java相比Rust中的if判别式两侧没有()
与其它语言类似if结构中满足一个条件就跳出结构,不再匹配下面的条件了。
改写成match方法
use std::cmp::Ordering;fn main(){ let x = 7; let a = 10; match x.cmp(&a){ Ordering::Less=>println!("小了"), Ordering::Greater=>println!("大了"), Ordering::Equal=>println!("正好"), }}
if是一种表达式所以可以放在let右边
例如:
fn main(){ let condition = true; let number = if condition{ 5 }else{ 6 }; println!("number = {}", number);//number = 5}
Rust的循环
Rust提供三种循环分别是:
--loop
无限循环若没有喊停(break;)就不会终止
fn main(){ let mut num = 0; loop{ if num==5 { break; } println!("xzc"); num += 1; }}
--while
fn main(){ let mut num = 0; while num<10 { println!("{}", num); num += 1; }}
--for(三者中效率最高)
fn main(){ let index = [10, 20, 30, 40, 50]; let mut a = 0; for i in index.iter(){//index.iter()可以换成index a += 1; println!("第{}个元素:{}", a, i); }}
Range
标准库提供
指定一个开始数字和一个结束数字,Range可以生成它们之间的数字(不含结束)
rev方法可以反转Range
例子:321倒计时发射
fn main(){ for i in (1..4).rev(){ println!("{}!", i); } println!("Launch");}