Rust编程:入门、实战与进阶
上QQ阅读APP看书,第一时间看更新

3.1 条件判断

条件判断由条件表达式构成,用于实现满足指定条件执行某个功能的程序逻辑。Rust中有3种条件判断,具体如下。

1)if:满足指定条件,执行某个功能。

2)if-else:满足指定条件执行某个功能,不满足指定条件执行另一个功能。

3)if-else if-else:用于多个条件分支执行对应功能的程序逻辑。

3.1.1 if条件判断

if条件判断模拟“如果……就……”的逻辑,其核心是值为true或false的表达式,语法如下所示。如果conditional_test为true,执行大括号中的代码。如果conditional_test为false,忽略大括号中的代码,并继续执行大括号后的第一条语句。需要注意的是,Rust并不会自动将非布尔值转换为布尔值,因此必须显式地使用布尔值作为表达式的值,否则会导致程序错误。

1  if conditional_test {
2      // conditional_test为true时执行代码
3      ...
4  }

设一个表示某人年龄的变量age,如果其年龄大于18岁,就打印“You are an adult”。使用if条件判断来实现该处理逻辑,代码如下所示。

1  if age > 18 {
2      println!("You are an adult.");
3  }

3.1.2 if-else条件判断

if-else条件判断模拟“如果……就……否则……”的逻辑,实现表达式的值为true时执行一个操作,为false时执行另一个操作的逻辑,语法如下所示。

1  if conditional_test {
2      // conditional_test为true时执行代码
3      ...
4  } else {
5      // conditional_test为false时执行代码
6      ...
7  }

设一个表示某人年龄的变量age,如果其年龄大于18岁,就打印“You are an adult”,否则就打印“You are not an adult”。使用if-else条件判断来实现该处理逻辑,代码如下所示。

1  if age > 18 {
2      println!("You are an adult.");
3  } else {
4      println!("You are not an adult.");
5  }

3.1.3 if-else if-else条件判断

在实际项目开发中,如果需要检查超过两个以上的条件,可以使用if-else if-else条件判断,语法如下所示。程序会依次检查每个条件表达式,直至遇到表达式的值为true时执行紧跟在该条件表达式之后的大括号中的代码,并跳过余下的条件检查,即程序只会执行其中的一个代码块。

1  if conditional_test_1 {
2      // conditional_test_1为true时执行代码
3  } else if conditional_test_2 {
4      // conditional_test_2为true时执行代码
5  } else {
6      // conditional_test_1和conditional_test_2都为false时执行代码
7  }

下面代码中有7条可能的执行路径,程序会按顺序依次检查每个条件表达式,并执行第一个表达式的值为true的代码块。如果某人年龄为15岁,打印“You are a teenager”。

 1  if age < 1 {
 2      println!("You are a baby.");
 3  } else if age < 3 {
 4      println!("You are a toddler.");
 5  } else if age < 5 {
 6      println!("You are a preschooler.");
 7  } else if age < 10 {
 8      println!("You are a schoolchild.");
 9  } else if age < 12 {
10      println!("You are a preteen.");
11  } else if age < 18 {
12      println!("You are a teenager.");
13  } else {
14      println!("You are an adult.");
15  }