網站首頁 編程語言 正文
今天主要了解了Rust語言的3種循環方法: loop、while、for。
首先聊聊loop,loop的主要作用是循環某段代碼段,使用方法如下
fn main() {
loop {
println!("loop test");
}
}
其中打印loop test這條代碼會無限循環,運行結果如下
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
loop test
lo^C
如果不進行人為介入,這個程序會一直跑下去,循環打印“loop test”, 看截圖中的^C是手動執行Ctrl+C 強制停止的, 所以loop默認是持續循環,不會退出,如果想退出loop循環除了手動強制停止外,在源碼中可以使用關鍵字break進行操作,比如下面這段代碼:
fn main() {
let mut num = 0;
loop {
if num < 5 {
println!("num is {}",num);
num = num + 1;
} else {
break;
}
}
println!("LOOP FINISH!");
}
這段代碼邏輯是每循環一次num加1,當num大于等于5時就執行break,也就是退出loop循環,所以最終執行的結果是:
num is 0
num is 1
num is 2
num is 3
num is 4
LOOP FINISH!
從結果也可以看出,當num等于五后 就退出了loop,打印了“LOOP FINISH!”字樣。
看完loop我們再來看一下while循環,Rust的while循環跟其他語言的while用法基本相同,主要是通過布爾表達式來控制while循環,比如我們通過while實現上述的功能的話可以使用如下代碼:
fn main() {
let mut num = 0;
while num < 5 {
println!("num is {}", num);
num = num + 1;
}
println!("WHILE FINISH!");
}
僅從代碼行數就能看出來,實現上述相同的功能,while顯得更優雅一點,或者說while更適合通過條件表達式控制循環的情況。
for循環也跟其他語言類似,更多的是用于遍歷的場景,還是打印相同的東西,使用for循環實現方式如下:
fn main() {
let num_list = [0,1,2,3,4];
for num in num_list.iter() {
println!("num is {}", num);
}
println!("FOR FINISH");
}
對于數組遍歷,for循環是比較適用的,由于while和for與其他語言比較類似,此處就不再擴展,不過Rust的風格上我是比較喜歡的,類似python、golang的風格。
總結一下:
loop 適用于死循環或代碼段需要反復執行的情況
while 適用于通過布爾表達式進行循環控制的情況
原文鏈接:https://blog.csdn.net/minibrid/article/details/128569068
相關推薦
- 2022-04-04 elementui組件select選擇不中的問題(組件select選擇器無法顯示選中的內容)
- 2021-12-10 Golang?Gin框架實現文件下載功能的示例代碼_Golang
- 2022-07-15 C#?泛型字典?Dictionary的使用詳解_C#教程
- 2022-06-19 微信小程序前端如何調用python后端的模型詳解_python
- 2023-10-17 nginx重定向url、nginx域名轉發
- 2022-11-24 Python?Django中間件詳細介紹_python
- 2022-05-19 Python學習之異常斷言詳解_python
- 2022-04-01 Kubernetes中Nginx配置熱加載的全過程_nginx
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支