包龙星

常威,你招是不招?如果你招了,我饶你不死;如果你不招,我就关门放狗!

雷豹

这就是条件语句!非黑即白,必须做个了断!

第十回:宣判时刻,条件语句

公堂之上,判案全靠 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;
    // 你的代码
}
下一回:大刑伺候(循环) →