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 }