- Rust 教程
- Rust - 首頁
- Rust - 簡介
- Rust - 環境搭建
- Rust - HelloWorld 示例
- Rust - 資料型別
- Rust - 變數
- Rust - 常量
- Rust - 字串
- Rust - 運算子
- Rust - 決策
- Rust - 迴圈
- Rust - 函式
- Rust - 元組
- Rust - 陣列
- Rust - 所有權
- Rust - 借用
- Rust - 切片
- Rust - 結構體
- Rust - 列舉
- Rust - 模組
- Rust - 集合
- Rust - 錯誤處理
- Rust - 泛型
- Rust - 輸入輸出
- Rust - 檔案輸入/輸出
- Rust - 包管理器
- Rust - 迭代器和閉包
- Rust - 智慧指標
- Rust - 併發
- Rust 有用資源
- Rust - 快速指南
- Rust - 有用資源
- Rust - 討論
Rust - 決策
決策結構要求程式設計師指定一個或多個條件,由程式進行評估或測試,以及在條件確定為真時要執行的語句或語句,以及可選地在條件確定為假時要執行的其他語句。
下面顯示的是大多數程式語言中常見決策結構的一般形式:
| 序號 | 語句及描述 |
|---|---|
| 1 | if 語句 if 語句由一個布林表示式後跟一個或多個語句組成。 |
| 2 | if...else 語句 if 語句後面可以跟一個可選的 else 語句,當布林表示式為假時執行。 |
| 3 | else...if 和巢狀 if 語句 您可以在另一個 if 或 else if 語句內使用一個 if 或 else if 語句。 |
| 4 | match 語句 match 語句允許將變數與值列表進行比較。 |
If 語句
if…else 結構在執行程式碼塊之前評估條件。
語法
if boolean_expression {
// statement(s) will execute if the boolean expression is true
}
如果布林表示式計算結果為真,則將執行 if 語句內的程式碼塊。如果布林表示式計算結果為假,則將執行 if 語句結束後的第一組程式碼(在閉合花括號之後)。
fn main(){
let num:i32 = 5;
if num > 0 {
println!("number is positive") ;
}
}
上面的例子將列印number is positive,因為 if 塊指定的條件為真。
if else 語句
if 後面可以跟一個可選的 else 塊。如果 if 語句測試的布林表示式計算結果為假,則將執行 else 塊。
語法
if boolean_expression {
// statement(s) will execute if the boolean expression is true
} else {
// statement(s) will execute if the boolean expression is false
}
流程圖
if 塊保護條件表示式。如果布林表示式計算結果為真,則執行與 if 語句關聯的塊。
if 塊後面可以跟一個可選的 else 語句。如果表示式計算結果為假,則執行與 else 塊關聯的指令塊。
示例 - 簡單 if…else
fn main() {
let num = 12;
if num % 2==0 {
println!("Even");
} else {
println!("Odd");
}
}
上面的例子列印變數中的值是偶數還是奇數。if 塊檢查值是否能被 2 整除以確定這一點。以下是上述程式碼的輸出:
Even
巢狀 If
else…if 梯用於測試多個條件。語法如下所示:
語法
if boolean_expression1 {
//statements if the expression1 evaluates to true
} else if boolean_expression2 {
//statements if the expression2 evaluates to true
} else {
//statements if both expression1 and expression2 result to false
}
使用 if…else…if 和 else 語句時,需要牢記以下幾點。
- 一個 if 可以有零個或一個 else,並且它必須位於任何 else..if 之後。
- 一個 if 可以有零到多個 else..if,並且它們必須位於 else 之前。
- 一旦 else..if 成功,就不會再測試任何剩餘的 else..if 或 else。
示例:else…if 梯
fn main() {
let num = 2 ;
if num > 0 {
println!("{} is positive",num);
} else if num < 0 {
println!("{} is negative",num);
} else {
println!("{} is neither positive nor negative",num) ;
}
}
程式碼片段顯示值是正數、負數還是零。
輸出
2 is positive
Match 語句
match 語句檢查當前值是否與值列表中的某個值匹配,這與 C 語言中的 switch 語句非常相似。首先,請注意,match 關鍵字後面的表示式不必用括號括起來。
語法如下所示。
let expressionResult = match variable_expression {
constant_expr1 => {
//statements;
},
constant_expr2 => {
//statements;
},
_ => {
//default
}
};
在下面給出的示例中,state_code 與值列表MH, KL, KA, GA進行匹配 - 如果找到任何匹配項,則將字串值返回給變數state。如果未找到匹配項,則預設情況 _ 匹配並返回值Unkown。
fn main(){
let state_code = "MH";
let state = match state_code {
"MH" => {println!("Found match for MH"); "Maharashtra"},
"KL" => "Kerala",
"KA" => "Karnadaka",
"GA" => "Goa",
_ => "Unknown"
};
println!("State name is {}",state);
}
輸出
Found match for MH State name is Maharashtra