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