Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

運算子優先順序

本集目標

了解 Rust 的運算順序——先乘除後加減,以及怎麼用括號改變順序。

正文

上一集我們學了加減乘除,但如果把它們混在一起呢?電腦會先算哪個?

先乘除,後加減

fn main() {
    println!("{}", 2 + 3 * 4);
}

你覺得答案是多少?

如果你覺得是 20(先算 2 + 3 = 5,再乘 4),那就錯了!

答案是 14。因為 Rust 跟數學一樣,先乘除,後加減。所以它先算 3 * 4 = 12,再算 2 + 12 = 14

用括號改變順序

如果你真的想先算加法呢?加括號就對了:

fn main() {
    println!("{}", (2 + 3) * 4);
}

這次答案就是 20 了。括號裡面的會先算,2 + 3 = 5,然後 5 * 4 = 20

小訣竅

不確定順序的時候,加括號就對了。括號不只是改順序,有時也讓程式碼更好讀。就算順序本來就對,加個括號讓意圖更明確也沒什麼不好。

fn main() {
    // 這兩行結果一樣,但第二行更清楚
    println!("{}", 2 + 3 * 4);
    println!("{}", 2 + (3 * 4));
}

重點整理

  • Rust 的運算優先順序跟數學一樣:先乘除後加減
  • 用括號 () 可以強制改變運算順序
  • 不確定順序時加括號,既安全又讓程式碼更好讀