if表达式

Rust的if...else if ... else基本语法和大多编程语言类似,这里不再赘述。

1
2
3
4
5
6
7
if 条件 {
	//...
} else if 条件 {
	//...
} else {
	//...
}

注意,这里的条件表达式不包含()括号,直接写表达式即可:

1
2
3
4
let number = 3;
if number > 0 {
    println!("number was three");
}

let中使用if

因为 if 是一个表达式,我们可以在 let 语句的右侧使用它:

1
2
3
4
5
6
7
8
9
fn main() {
    let condition = true;
    let number = if condition {
        5	
    } else {
        6
    };		//不要漏掉这里的分号`;`
    println!("number = {}", number);
}

这里有三点要注意:

  • if表达式大括号最后的分号;不能漏掉;
  • if...else代码块里面的表达式不能加;分号;
  • if...else代码块里面的表达式类型必须一致;

循环

Rust有三种循环:

  • loop
  • while
  • for

loop循环

loop其实就是个死循环,除非明确告诉要求停止。

1
2
3
4
5
fn main() {
    loop {
        println!("again!");
    }
}

当然,我们可以使用break来停止循环,break还可以返回一个值。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fn main() {
    let mut counter = 0;
    let result = loop {
        counter += 1;
        if counter == 10 {
            break counter * 2; //这里经测试,尾部的分号可加可不加,都可以
        }
    };
    assert_eq!(result, 20);
}

while循环

在程序中计算循环的条件也很常见。当条件为真,执行循环。当条件不再为真,调用 break 停止循环。这个循环类型可以通过组合 loop、if、else 和 break 来实现。

然而,这个模式太常用了,Rust 为此内置了一个语言结构,它被称为 while 循环

for循环

Rust也提供了更加常用的for循环:

1
2
3
4
5
6
fn main() {
    let a = [10, 20, 30, 40, 50];
    for element in a.iter() {
        println!("the value is: {}", element);
    }
}

循环中也可以使用continuebreak语法。