Rust 初學者指南/If 語句和布林值
一個基本的概念是,我們可能希望根據某些條件執行不同的操作。例如,我們可能希望將數字限制在某個閾值,比如 10。因此,如果數字大於 10,我們希望將其設定為 10。為了表達這一點,我們使用稱為 if 語句的東西。if 語句使用稱為布林值的東西。布林值要麼為真,要麼為假。在 Rust 中,它簡化為“bool”以方便輸入。例如
fn main() {
let number = 5;
let is_six: bool = number == 6;
}
這裡我們使用 == 來檢查左右兩邊的兩個東西是否相等。如果相等,則變為真,否則變為假。由於 5 不等於 6,所以 is_six 將為假。除了 == 之外,還有其他被稱為“運算子”的東西,因為它們對輸入進行運算。最常見的運算子是 ==,用於比較兩個東西是否相同;!=,用於比較兩個東西是否不同;>,用於比較左側的東西是否大於右側的東西;>=,用於比較左側的東西是否大於或等於右側的東西;以及 < 和 <= 的反向比較。
我們在 if 語句中使用這些運算子,將一個布林值放入 if 語句中,如果布林值為真,我們將進入 if 語句的 {} 中,否則不進入。
fn main() {
let mut number = 5;
let is_six: bool = number == 6;
if is_six {
number += 4;
}
println!("{}", number);
}
因此,由於 is_six 為假,我們不會進入 if 大括號,打印出的數字將是 5。但是,如果我們將其更改為
fn main() {
let mut number = 5;
let is_five: bool = number == 5;
if is_five {
number += 4;
}
println!("{}", number);
}
由於數字等於 5,所以 is_five 為真,我們進入大括號,導致數字最終等於 9。這比較冗長,因此通常情況下布林值不會放在變數中,而是直接放在 if 語句中,如下所示
fn main() {
let mut number = 5;
if number == 5 {
number += 4;
}
println!("{}", number);
}
這寫起來更快,更簡潔,更容易在以後修改,因此通常更受青睞。
假設我們想在數字等於 6 時加 4,在數字不等於 6 時減 4。我們該怎麼做呢?我們可以使用 != 不等於運算子進行第二個 if 語句,如下所示
fn main() {
let mut number = 5;
if number == 6 {
number += 4;
}
if number != 6 {
number -= 4;
}
println!("{}", number);
}
這將起作用,但它很長且讀起來很彆扭,也不便於更改。相反,我們使用 else 運算子
fn main() {
let mut number = 5;
if number == 6 {
number += 4;
} else {
number -= 4;
}
println!("{}", number);
}
這裡,由於數字不等於 6,我們進入 else 中,減去 4,所以數字等於 1。
我們還可以將 if 和 else 組合起來執行不同的操作:例如,假設我們想在數字小於 7 時加 4,在數字大於 9 時減 4,否則加 1。如果用單獨的 if 語句來做,這將很尷尬,因為如果數字是 6,它小於 7,所以我們會加 4,使其成為 10,這意味著我們隨後將減去 4,因為它大於 9。因此,使用 else 語句將每個部分劃分為自己的程式碼塊很方便。我們可以用以下方式實現這種行為
fn main() {
let mut number = 5;
if number < 7 {
number += 4;
} else if number > 9 {
number -= 4;
} else {
number += 1;
}
println!("{}", number);
}
數字最終為 **9**。
讓我們回到一開始將數字限制在 10 的示例。現在我們可以做到這一點,並且可以將其表示為一個函式。
fn cap_at_10(input: i32) -> i32 {
if input > 10 {
return 10;
} else {
return input;
}
}
然後我們可以在 main() 中使用它,如下所示
fn main() {
let mut number = 8;
number = cap_at_10(number);
let mut number2 = 14;
number2 = cap_at_10(number2);
println!("{}", number);
println!("{}", number2);
}
這將打印出 8 和 10,因為 8 小於 10,所以我們進入 if 語句的 else {} 部分,所以只從函式返回 8。而對於 14,它大於 10,所以我們進入 if 語句的 if {} 部分,所以返回 10。
所有這些程式設計事物的一個關鍵點是它們非常簡單。它們的強大之處在於將它們組合起來使用。從小事做起,大事成!