自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Rust 基礎(chǔ)系列 #6: 條件語(yǔ)句

開發(fā)
在這篇文章中,我們將學(xué)習(xí)使用條件語(yǔ)句來(lái)管理 Rust 程序的控制流。

什么是條件語(yǔ)句?

在編寫代碼的時(shí)候,最常見的任務(wù)之一就是檢查某些條件是否為 true 或 false。“如果溫度高于 35°C,打開空調(diào)?!?/p>

通過(guò)使用 if 和 else 這樣的關(guān)鍵字(有時(shí)候結(jié)合使用),程序員可以根據(jù)條件(例如提供的參數(shù)數(shù)量、從命令行傳遞的選項(xiàng)、文件名、錯(cuò)誤發(fā)生等)改變程序的行為。

所以,對(duì)一個(gè)程序員來(lái)說(shuō),了解任何語(yǔ)言的控制流都是至關(guān)重要的,更不用說(shuō) Rust 了。

條件運(yùn)算符

下表列出了所有常用的單個(gè)條件運(yùn)算符:

運(yùn)算符

示例

解釋

>

a > b

a 大于 b

<

a < b

a 小于 b

==

a == b

a 等于 b

!=

a != b

a 不等于 b

>=

a >= b

a 大于 或 等于 b

<=

a <= b

a 小于 或 等于 b

以及下表是邏輯運(yùn)算符,它們用于一個(gè)或多個(gè)條件之間:

運(yùn)算符

示例

解釋

|| (邏輯或)

條件1 || 條件2

條件1 或 條件2 中至少有一個(gè)為 true

&& (邏輯與)

條件1 && 條件2

所有 條件都為 true

! (邏輯非)

!條件

條件 的布爾值的相反值

?? 與數(shù)學(xué)相似,你可以使用圓括號(hào)來(lái)指定操作的優(yōu)先級(jí)。

使用 if else

要控制 Rust 代碼的基本流程,使用兩個(gè)關(guān)鍵字:if 和 else。這可以根據(jù)提供的條件的狀態(tài)創(chuàng)建兩個(gè)“執(zhí)行路徑”。

一個(gè)簡(jiǎn)單的帶有替代執(zhí)行路徑的 if 塊的語(yǔ)法如下:

if 條件 {
    <語(yǔ)句>;
} else {
    <語(yǔ)句>;
}

?? 當(dāng)只有一個(gè)條件時(shí),將其括在圓括號(hào)中并不是強(qiáng)制性的。根據(jù)語(yǔ)法,使用圓括號(hào)是可選的。你仍然應(yīng)該使用它們來(lái)指定優(yōu)先級(jí)并優(yōu)化可讀性。

來(lái)看看一個(gè)例子。

fn main() {
    let a = 36;
    let b = 25;

    if a > b {
        println!("a 大于 b");
    } else {
        println!("b 大于 a");
    }
}

這里,我聲明了兩個(gè)整數(shù)變量 a 和 b,它們的值分別為 '36' 和 '25'。在第 5 行,我檢查變量 a 中存儲(chǔ)的值是否大于變量 b 中存儲(chǔ)的值。如果條件計(jì)算結(jié)果為 true,則會(huì)執(zhí)行第 6 行的代碼。如果條件計(jì)算結(jié)果為 false,由于我們有一個(gè) else 塊(可選),第 8 行的代碼將被執(zhí)行。

來(lái)看看程序的輸出。

a 大于 b

完美!

來(lái)修改一下變量 a 的值,使其小于變量 b 的值,看看會(huì)發(fā)生什么。我將把 a 的值改為 '10'。修改后的輸出如下:

b 大于 a

但是,如果我將相同的值存儲(chǔ)在變量 a 和 b 中呢?為了看到這一點(diǎn),我將兩個(gè)變量的值都設(shè)置為 '40'。修改后的輸出如下:

b 大于 a

嗯?從邏輯上講,這沒(méi)有任何意義... :frowning:

但是這可以改進(jìn)!我們繼續(xù)。

使用 else if 條件

與其他任何編程語(yǔ)言一樣,你可以使用 else if 塊來(lái)提供多于兩個(gè)的執(zhí)行路徑。語(yǔ)法如下:

if 條件 {
    <語(yǔ)句>;
} else if 條件 {
    <語(yǔ)句>;
} else {
    <語(yǔ)句>;
}

現(xiàn)在,通過(guò)使用 else if 塊,我可以改進(jìn)程序的邏輯。下面是修改后的程序。

fn main() {
    let a = 40;
    let b = 40;

    if a == b {
        println!("a 與 b 是相等的");
    } else if a > b {
        println!("a 大于 b");
    } else {
        println!("b 大于 a");
    }
}

現(xiàn)在,我的程序的邏輯是正確的。它已經(jīng)處理了所有的邊緣情況(我能想到的)。第 5 行處理了 a 等于 b 的情況。第 7 行處理了 a 可能大于 b 的情況。而 a 小于 b 的情況則由第 9 行的 else 塊隱式處理。

現(xiàn)在,當(dāng)我運(yùn)行這段代碼時(shí),我得到了以下輸出:

a 與 b 是相等的

現(xiàn)在這就完美了!

示例:找到最大值

我知道使用 if 和 else 很容易,但是讓我們?cè)倏匆粋€(gè)程序。這次,我們來(lái)比較三個(gè)數(shù)字。我還將在這個(gè)實(shí)例中使用邏輯運(yùn)算符!

fn main() {
    let a = 73;
    let b = 56;
    let c = 15;

    if (a != b) && (a != c) && (b != c) {
        if (a > b) && (a > c) {
            println!("a 是最大的");
        } else if (b > a) && (b > c) {
            println!("b 是最大的");
        } else {
            println!("c 是最大的");
        }
    }
}

這個(gè)程序第一眼看上去可能很復(fù)雜,但是不要害怕,我會(huì)解釋的!

最開始,我聲明了三個(gè)變量 ab 和 c,并賦予了我能想到的隨機(jī)值。然后,在第 6 行,我檢查了沒(méi)有變量的值與其他變量相同的條件。首先,我檢查 a 和 b 的值,然后是 a 和 c,最后是 b 和 c。這樣我就可以確定沒(méi)有變量中存儲(chǔ)了重復(fù)的值。

然后,在第 7 行,我檢查了變量 a 中存儲(chǔ)的值是否是最大的。如果這個(gè)條件計(jì)算結(jié)果為 true,則會(huì)執(zhí)行第 8 行的代碼。否則,將檢查第 9 行的執(zhí)行路徑。

在第 9 行,我檢查了變量 b 中存儲(chǔ)的值是否是最大的。如果這個(gè)條件計(jì)算結(jié)果為 true,則會(huì)執(zhí)行第 10 行的代碼。如果這個(gè)條件也是 false,那么只有一種可能。3 個(gè)變量中的最大值既不是 a 也不是 b

所以,自然地,在 else 塊中,我打印出變量 c 擁有最大值。

來(lái)看看程序的輸出:

a 是最大的

這是預(yù)期的結(jié)果。嘗試修改分配給每個(gè)變量的值,并自己測(cè)試一下! :smiley:

總結(jié)

你學(xué)習(xí)到了如何使用 if 和 else 語(yǔ)句。在你繼續(xù)使用大量 if else if 語(yǔ)句制作自己的 AI 之前(哈哈),讓我們?cè)诒鞠盗械南乱黄恼轮袑W(xué)習(xí) Rust 中的循環(huán)。

持續(xù)關(guān)注。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-05-29 16:25:59

Rust函數(shù)

2023-06-15 17:00:11

Rust循環(huán)

2023-05-14 18:56:50

Rust數(shù)據(jù)類型

2023-05-23 18:11:12

Rust數(shù)組元組

2023-06-23 14:15:09

Rust編程

2021-07-21 10:18:21

Python條件語(yǔ)句Python基礎(chǔ)

2023-05-04 07:33:39

Rust變量常量

2023-04-10 18:03:18

Rust編程語(yǔ)言

2024-01-05 17:41:36

Rust編程循環(huán)

2020-11-09 10:19:05

Java

2023-08-11 15:46:40

BashIf Else 語(yǔ)句

2021-08-14 10:01:43

Python條件語(yǔ)句Python基礎(chǔ)

2021-07-07 21:40:46

Rust函數(shù)勸退

2022-12-09 07:58:52

Bash條件語(yǔ)句

2010-09-17 14:48:28

SQL條件語(yǔ)句

2024-03-19 08:54:20

Rust語(yǔ)言內(nèi)存管理應(yīng)用程序開發(fā)

2010-11-18 12:58:25

Oracle條件分支語(yǔ)

2010-09-26 10:08:43

sql條件語(yǔ)句

2023-07-30 09:50:51

Bash字符串

2010-11-24 17:36:02

MySQL條件查詢語(yǔ)句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)