Rust Note(5)_if_else_match
if else, if else if 條件判斷
如同其他語言一樣, Rust 也是有流程控制
Control Condition Flow
使用的原則是, 只要有一個符合使用者所設定的條件, 那下方的判斷就不再執行.
if, else 若…則…
這是最簡單的, 若非 A 則 B.
範例如下 :
1 | fn main() { |
Flow 如下:
- 先宣告兩個變數 a and b, 且指定其形態
- 做兩個對比比較
!=
運算符 : 不等於if <condition 1>
condition 1 條件滿足成立, 執行後面的運算 - 後面的 else 就不會再被執行
修改一下上面的範例 :
1 | fn main() { |
把
!=
換成==
那結果就變成 if <condition 1> 不成立, 就繼續往下執行 else 語句
當然, 世界如果有這麼美好就好了, 絕對不可能只有單純兩個判斷………..
那如果狀況很多呢? How can I do?????????
if, else if, …, else; else if
派上用場了!!!
不囉嗦, 直接上範例
1 | fn main() { |
啾竟發生何事?
- 宣告變數
- 開始條件判斷
2-1. <condition 1> : a 不等於 b
2-2. <condition 2> : a 大於 b
2-3. <conditoin 3> : a 大於等於 b - condition 1, 2, 3 都為
false
都不成立…….. - 所以最後輸出結果為 else 裡面的運算語句.
如果多了這麼多的條件判斷, 是不是可變化性變更多了?
Match 語句 (Like C switch 語句)
如果條件很多, 寫一大堆 if else…….是不是會更亂?????????
那我們用 match 看看~
1 | fn main() { |
來看一下作用的 flow:
- f_name 有多個條件, “KJ”, “KD”, “KB”
- 使用
match
這關鍵字, 啟動媒合功能????? - 只要裡面有對應到的, 就會
=> 值
返回給 f_name _ => value
代表都比對不到, 那就返回 Unknown.
有沒有發現 match 跟 C, Java 其他語言的 switch 很像呢?
Rust Note_20211023_1.2