Rust 條件語句

Rust 條件語句

在編程語言中,條件語句是程序流程控制的重要組成部分。Rust 作為一種系統編程語言,其條件語句的設計簡潔而強大。本文將詳細介紹 Rust 中的條件語句,包括其語法、用法以及一些高級特性。

1. 基本條件語句

Rust 中的基本條件語句使用 if 關鍵字。以下是一個簡單的例子:

fn main() {let number = 3;if number < 5 {println!("number is less than 5");}
}

在這個例子中,如果 number 小于 5,程序將打印出 "number is less than 5"

2. 條件語句的嵌套

在復雜的情況下,你可能需要在條件語句內部嵌套另一個條件語句。以下是一個嵌套 if 語句的例子:

fn main() {let number = 3;if number < 10 {if number < 5 {println!("number is less than 5");} else {println!("number is between 5 and 9");}} else {println!("number is 10 or greater");}
}

在這個例子中,如果 number 小于 10,程序將進入第一個 if 語句。如果 number 小于 5,程序將打印 "number is less than 5";否則,打印 "number is between 5 and 9"

3. 條件表達式

Rust 還提供了條件表達式,它允許你返回一個值,而不是僅僅執行一個代碼塊。條件表達式使用 if 后跟一個 else,如下所示:

fn main() {let number = 3;let result = if number < 5 {"number is less than 5"} else {"number is 5 or greater"};println!("{}", result);
}

在這個例子中,result 將被賦值為 "number is less than 5""number is 5 or greater",取決于 number 的值。

4. 循環語句

除了 if 語句,Rust 還提供了循環語句,如 whilefor,用于重復執行代碼塊。以下是一個使用 while 循環的例子:

fn main() {let mut number = 3;while number < 5 {println!("number is less than 5");number += 1;}
}

在這個例子中,程序將反復打印 "number is less than 5",直到 number 達到 5。

5. match 語句

Rust 還提供了 match 語句,它類似于其他編程語言中的 switch 語句。match 語句可以匹配多個模式,并執行相應的代碼塊。以下是一個 match 語句的例子:

fn main() {let number = 3;match number {1 => println!("number is 1"),2 => println!("number is 2"),3 => println!("number is 3"),_ => println!("number is not 1, 2, or 3"),}
}

在這個例子中,match 語句將根據 number 的值執行不同的代碼塊。

6. 總結

Rust 的條件語句提供了強大的流程控制功能,可以幫助你編寫高效、可讀的代碼。通過本文的介紹,你應該已經了解了 Rust 中各種條件語句的用法。在實際編程中,靈活運用這些條件語句,可以使你的代碼更加健壯和易于維護。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93641.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93641.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java EE進階 --- SpringBoot】初識Spring(創建SpringBoot項目)

樂觀學習&#xff0c;樂觀生活&#xff0c;才能不斷前進啊&#xff01;&#xff01;&#xff01; 我的主頁&#xff1a;optimistic_chen 我的專欄&#xff1a;c語言 &#xff0c;Java, Java EE初階&#xff0c; Java數據結構 歡迎大家訪問~ 創作不易&#xff0c;大佬們點贊鼓勵…

腦潛在進展:基于潛擴散模型的三維腦磁共振成像個體時空疾病進展研究|文獻速遞-深度學習人工智能醫療圖像

Title題目Brain Latent Progression: Individual-based spatiotemporal diseaseprogression on 3D Brain MRIs via latent diffusion腦潛在進展&#xff1a;基于潛擴散模型的三維腦磁共振成像個體時空疾病進展研究01文獻速遞介紹神經退行性疾病是現代醫療保健領域最緊迫的挑戰之…

專題:2025AI技術應用與發展報告|附600+份報告PDF、數據儀表盤匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p43632 當企業管理者看著后臺65%的任務被AI自動分配&#xff0c;卻仍在為下周的營銷方案熬夜改稿時&#xff0c;一個現實的矛盾浮出水面&#xff1a;AI到底能幫企業做什么&#xff1f; 2025年&#xff0c;算法研發投入占企業AI預算的…

【筆記】擴散模型(一一):Stable Diffusion XL 理論與實現

論文鏈接&#xff1a;SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis 官方實現&#xff1a;Stability-AI/generative-models 非官方實現&#xff1a;huggingface/diffusers Stable Diffusion XL (SDXL) 是 Stablility AI 對 Stable Diffusion 進…

學習安卓APP開發,10年磨一劍,b4a/Android Studio

學習安卓APP開發 記得上次學APP都是在2016年前了&#xff0c;一晃就過去了10年。 當時用ANDROID studio打開一個空項目和編繹分別用了300秒&#xff0c;一下就用了10分鐘。 后來買了一臺一萬多的電腦&#xff0c;CPU換成了I5 8600K 4.2GHZ*6核&#xff0c;再加上M2固態硬盤。 編…

調試技巧(vs2022 C語言)

調試之前首先要保證我們的腦袋是清晰的&#xff0c;我們調試的過程主要是看代碼有沒有按照我們的想法去運行調試最常使用的幾個快捷鍵F5啟動調試&#xff0c;經常用來直接跳到下一個斷點處&#xff08;F5通常和F9配合使用&#xff0c;打了斷點按F5程序可以直接運行到斷點處&…

MySQL深度理解-Innodb底層原理

1.MySQL的內部組件結構大體來說&#xff0c;MySQL可以分為Server層和存儲引擎層兩部分。2.Server層Server層主要包括連接器、查詢緩存、分析器、優化器和執行器等&#xff0c;涵蓋MySQL的大多數核心服務功能&#xff0c;以及所有的內置函數&#xff08;如日期、時間、數據和加密…

QFtp在切換目錄、上傳文件、下載文件、刪除文件等一系列操作時,如何按照預期操作指令順序執行

FTP服務初始化時&#xff0c;考慮到重連、以及commandFinished信號信號執行完成置m_bCmdFinished 為true; void ICore::connectFtpServer() {if(g_pFile nullptr){g_pFile new QFile;}if(g_pFtp){g_pFtp->state();g_pFtp->abort();g_pFtp->deleteLater();g_pFtp n…

JavaSE高級-02

文章目錄1. 多線程1.1 創建線程的三種方式多線程的創建方式一&#xff1a;繼承Thread類多線程的創建方式二&#xff1a;實現Runnable接口多線程的創建方式三&#xff1a;實現Callable接口三種線程的創建方式對比Thread的常用方法1.2 線程安全線程同步方式一&#xff1a;同步代碼…

從舒適度提升到能耗降低再到安全保障,樓宇自控作用關鍵

在現代建筑的發展歷程中&#xff0c;樓宇自動化控制系統&#xff08;BAS&#xff09;已從單純的設備管理工具演變為集舒適度優化、能耗控制與安全保障于一體的核心技術。隨著物聯網和人工智能的深度應用&#xff0c;樓宇自控系統正以數據為紐帶&#xff0c;重構人與建筑的關系。…

圖像分類精度評價的方法——誤差矩陣、總體精度、用戶精度、生產者精度、Kappa 系數

本文詳細介紹 “圖像分類精度評價的方法”。 圖像分類后&#xff0c;需要評估分類結果的準確性&#xff0c;以判斷分類器的性能和結果的可靠性。 常涉及到下面幾個概念&#xff08;指標&#xff09; 誤差矩陣、總體精度、用戶精度、生產者精度和 Kappa 系數。1. 誤差矩陣&#…

【科普向-第一篇】數字鑰匙生態全景:手機廠商、車廠與協議之爭

目錄 一、協議標準之爭&#xff1a;誰制定規則&#xff0c;誰掌控入口 1.1 ICCE&#xff1a;中國車企主導的自主防線 1.2 ICCOA&#xff1a;手機廠商的生態突圍 1.3 CCC&#xff1a;國際巨頭的高端壁壘 1.4 協議對比 二、底層技術路線&#xff1a;成本與安全的博弈 2.1B…

dockerfile及docker常用操作

1: docker 編寫 Dockerfile 是用于構建 Docker 鏡像的文本文件&#xff0c;包含一系列指令和參數&#xff0c;用于定義鏡像的構建過程 以下是關鍵要點&#xff1a; 一、基本結構 ?FROM?&#xff1a;必須作為第一條指令&#xff0c;指定基礎鏡像&#xff08;如 FROM python:3.…

[vibe coding-lovable]lovable是不是ai界的復制忍者卡卡西?

在火影忍者的世界里&#xff0c;卡卡西也被稱為復制忍者&#xff0c;因為大部分忍術都可以被其Copy! 截圖提示:實現這個效果 -> 發給Lovalbe -> 生成的的效果如下&#xff0c;雖然不是1比1還原&#xff0c;但是這個效果也很驚艷。 這個交互設計&#xff0c;這個UI效果&am…

技術賦能安全:智慧工地構建城市建設新防線

城市建設的熱潮中&#xff0c;工地安全始終是關乎生命與發展的核心議題。江西新余火災等事故的沉痛教訓&#xff0c;暴露了傳統工地監管的諸多短板——流動焊機“行蹤難覓”&#xff0c;無證動火作業屢禁不止&#xff0c;每一次監管缺位都可能引發災難性后果。如今&#xff0c;…

Sublime Text 代碼編輯器(Mac中文)

原文地址&#xff1a;Sublime Text Mac 代碼編輯器 sublime text Mac一款輕量級的文本編輯器&#xff0c;擁有豐富的功能和插件。 它支持多種編程語言&#xff0c;包括C、Java、Python、Ruby等&#xff0c;可以幫助程序員快速編寫代碼。 Sublime Text的界面簡潔、美觀&#…

如何制定項目時間線,合理預計?

制定一份現實可行且行之有效的項目時間線&#xff0c;是一個系統性的分解、估算與排序過程&#xff0c;而非簡單的日期羅列。核心步驟包括&#xff1a;明確項目范圍與可交付成果、利用工作分解結構&#xff08;WBS&#xff09;進行任務拆解、科學估算各項任務的持續時間、識別并…

RSA詳解

一、RSA 簡介RSA 是一種公鑰密碼體制&#xff0c;由羅納德?李維斯特&#xff08;Ron Rivest&#xff09;、阿迪?薩莫爾&#xff08;Adi Shamir&#xff09;和倫納德?阿德曼&#xff08;Leonard Adleman&#xff09;于 1977 年提出&#xff0c;算法名稱由他們三人姓氏的首字母…

Linux獲取物理硬盤總容量

獲取物理硬盤總容量: 1.查看單個硬盤: 使用 lsblk 或 fdisk -l (需要 sudo) 命令。它們會直接列出物理硬盤 (sda, nvme0n1 等) 和它們的分區,并顯示硬盤的總物理容量。 abcd四塊物理盤,只掛載使用3塊,留一塊未使用 最常見的原因通常是配置了熱備盤(RAID 1/5/6/10 等冗余…

STM32學習筆記14-I2C硬件控制

I2C外設簡介STM32內部集成了硬件I2C收發電路&#xff08;硬件收發器&#xff1a;自動生產波形&#xff0c;自動翻轉電平等&#xff09;&#xff0c;可以由硬件自動執行時鐘生成、起始終止條件生成、應答位收發、數據收發等功能&#xff0c;減輕CPU的負擔——軟件只需要寫入控制…