条件语句
条件语句基本都是if-else组成。但是Rust的条件语句和Java还是有一点区别。
Java中的if语句会将表达式写在括号中,但是Rust不需要,Rust默认if后跟的就是表达式(但是也有例外,比如if let,这个后面会说)。
fn main() {
let x = 10;
if x < 20 {
println!("small");
} else if x < 100 {
println!("biggish");
} else {
println!("huge");
}
}
fn main() {
let x = 10;
let size = if x < 20 { "small" } else { "large" };
println!("number size: {}", size);
}
循环语句
要说循环语句for循环一定首当其冲,毕竟日常开发使用最多的就是for(解决不了的就for一次,还不行就for两次)
- for
fn main() {
for x in 1..5 {
println!("x: {x}");
}
}
Rust的for循环和Java很不一样,但是和Python基本相同都是使用for item in items 的方式。
- while
fn main() {
let mut x = 200;
while x >= 10 {
x = x / 2;
}
println!("Final x: {x}");
}
while循环的结束表达式跟在while后面。满足表达式的才进入while体。
- loop
fn main() {
let mut i = 0;
loop {
i += 1;
println!("{i}");
if i > 100 {
break;
}
}
}
loop循环是Rust中的一个循环关键字,使用loop一定要注意死循环问题,因为loop就是一个死循环的代码块。
以上代码中可以看到loop关键字没有定义任何中断表达式,中断表达式是在loop代码块中定义的,只有执行break才会跳出loop。所以使用loop一定要注意。
中断/继续语句
fn main() {
let (mut a, mut b) = (100, 52);
let result = loop {
if a == b {
break a;
}
if a < b {
b -= a;
} else {
a -= b;
}
};
println!("{result}");
for i in 1..5 {
if i < 2 {
continue;
}
println!("current index :{i}");
}
}
break:中断的关键字,中断用于循环体的中断,可以中断循环体的执行,直接跳出循环体
continue:继续的关键字,循环体如果执行继续关键字,则直接跳过当前执行进行下一次循环。不会跳出循环