控制流
条件表达式
if a == true{ //1
}else if a == false{//2
}else{
}
1,2处与其他编程语言不同,为了安全, rust不接受 如C语言 if(value)或if(!value)简化判断表达式的方式,必须如1,2写全。
for 循环
for n in 1..100{
}
for n in 迭代器{
}
//左闭右开的区别
1..100
1..=100
//这种可以类似python range的语法糖可以快速构建一个数字序列迭代器
while 循环
while a==10{
}
loop循环
loop{
}
循环相关关键字
//break
//continue
//continue 与其他语言一致
//break 有三种用法
//1
loop{
break; //默认跳出当前循环
}
//2
let a = loop{
break 10; //打断循环 并返回10 (结果) for循环无法使用
}
//3
//跳出嵌套循环的某一个循环
'a:loop{
'b:loop{
break 'a; //直接跳出 'a 标记的循环
}
}
匹配表达式
let a = 42;
match a {
0 => println!("这是0"),
1|2|3 => println!("这是1或者2或者3"),//1或2或3
4..=41 => println!("这是4到45 闭区间"),//匹配4到41
n@42 => println!("这是{}",n),//绑定值 与前三表达是可以一起使用
_ => println!("这超出0到42"), //必须存在默认值
}
还有别的形式的匹配表达式
if let
// if let
let a = 70;
if let 0 = a{
println!("这是0");
}
else if let 1|2|3 = a{
println!("这是1或者2或者3");
}
else if let 4..=41 = a{
println!("这是4到45 闭区间");
}
else if let n@42 = a{
println!("这是{}",n);
}
else { //除了这里与match不同 ,其他匹配表达式都一样
println!("这超出0到42");
}
while let
//不断匹配 直到结束
let mut v = vec![1,2,3,4,5];
while let Some(x) = v.pop(){
println!("{}",x)
}
//上面的匹配表达式同样好使



