fnmain() { letnumber = 3; // 这段代码会编译报错,因为整数 3 不能当作布尔值 if number { println!("number was three"); } }
if 是一个 表达式(Expression),有返回值,可以赋值给变量。
注意:所有分支必须返回 同一类型 的值。
1 2 3 4 5 6 7 8
fnmain() { letcondition = true;
// if 表达式的结果赋值给 number letnumber = if condition { 5 } else { 6 };
println!("The value of number is: {number}"); }
else if 表达式
Rust 会依次检查 if 条件,执行第一个为 true 的分支。
一旦匹配成功,后续的条件不会再检查。
1 2 3 4 5 6 7 8 9 10 11 12 13
fnmain() { letnumber = 6;
if number % 4 == 0 { println!("number is divisible by 4"); } elseif number % 3 == 0 { println!("number is divisible by 3"); } elseif number % 2 == 0 { println!("number is divisible by 2"); } else { println!("number is not divisible by 4, 3, or 2"); } }
⚠️ 如果 else if 太多,代码会变得复杂,此时可以用 模式匹配(Pattern Matching) 来简化。