第十回:宣判时刻,条件语句
公堂之上,判案全靠 if。Rust 的条件语句跟其他语言差不多,但有个特点:条件表达式不需要加括号!
1. if-else (从严发落)
fn main() {
let confession = true; // 是否招供
if confession {
println!("包龙星:算你识相,押入大牢!");
} else {
println!("包龙星:来人,上狗头铡!");
}
}
2. else if (罪加一等)
如果有多种情况,就一直 else if 下去。
fn main() {
let bribe = 500;
if bribe > 1000 {
println!("方唐镜:我是清白的!");
} else if bribe > 100 {
println!("方唐镜:我只是路过...");
} else {
println!("方唐镜:大人饶命啊!");
}
}
3. if 是表达式 (神来之笔)
在 Rust 里,if 不仅仅是语句,它还是表达式,可以返回值!
这意味着你可以把判决结果直接赋值给变量。
fn main() {
let guilty = true;
// 判决书直接生成
let verdict = if guilty {
"斩立决"
} else {
"当庭释放"
};
println!("最终判决:{}", verdict);
}
那我能不能这样写?如果赢了返回 100 两,输了返回 "输光光"?
胡闹! 两个分支返回的类型必须一样!不然这一会儿是钱,一会儿是字,账房先生(编译器)会疯的!
动手时刻:判别清官
根据贪污金额 money 判断官职评语:
- 0:清官
- 1-100:小贪
- 100以上:大贪
fn main() {
let money = 50;
// 你的代码
}