条件语句
RUST的条件语句与其他语言大体相同,都是 if else 关键字,这里重点介绍与其他语言的不同。首先RUST中的条件判断表达式是不需要加小括号的:
fn main() {
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else if number % 2 == 0 {
println!("number is divisible by 2");
} else {
println!("number is not divisible by 4, 3, or 2");
}
}
其次RUST中的条件判断表达式必须是bool类型,不支持将非布尔类型自动转换为布尔类型,下面这种写法会报错,因为number是个整数类型:
fn main() {
let number = 3;
if number {
println!("number was three");
}
}
另外,在RUST中也可以借助 if else 语句实现类型三元表达式(A ? B : C)的效果,但是 if 和 else 后面接的表达式块的数据类型必须是一致的比如都是整型:
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {number}");
}
循环语句
RUST中提供了 loop 、while 、for 三种循环方式。首先介绍一下 loop,它是RUST提供的一种无限循环,不用判断表达式即可进入,使用break关键字可以根据需要跳出循环:
fn main() {
let mut count = 0;
'counting_up: loop {
println!("count = {count}");
let mut remaining = 10;
loop {
println!("remaining = {remaining}");
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up;
}
remaining -= 1;
}
count += 1;
}
println!("End count = {count}");
}
然后是while循环,和其他语言使用方式没什么区别,就是判断表达式不用加括号:
fn main() {
let mut number = 3;
while number != 0 {
println!("{number}!");
number -= 1;
}
println!("LIFTOFF!!!");
}
最后是for循环,它没有C语言里的三元控制表达式,倒是和高级语言如python基本类似:
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a {
println!("the value is: {element}");
}
}