學習Rust 迴圈
導讀 | Rust 語言是一種高效、可靠的通用高階語言。其高效不僅限於開發效率,它的執行效率也是令人稱讚的,是一種少有的兼顧開發效率和執行效率的語言。 |
Rust 除了靈活的條件語句以外,迴圈結構的設計也十分成熟。這一點作為身經百戰的開發者應該能感覺出來。
while 迴圈是最典型的條件語句迴圈:
例項
fn main() { let mut number = 1; while number != 4 { println!("{}", number); number += 1; } println!("EXIT"); }
執行結果:
1 2 3 EXIT
Rust 語言到此教程編撰之日還沒有 do-while 的用法,但是 do 被規定為保留字,也許以後的版本中會用到。
在 C 語言中 for 迴圈使用三元語句控制迴圈,但是 Rust 中沒有這種用法,需要用 while 迴圈來代替:
C 語言
int i; for (i = 0; i < 10; i++) { // 迴圈體 } Rust let mut i = 0; while i < 10 { // 迴圈體 i += 1; }
for 迴圈是最常用的迴圈結構,常用來遍歷一個線性資料據結構(比如陣列)。for 迴圈遍歷陣列:
例項
fn main() { let a = [10, 20, 30, 40, 50]; for i in a.iter() { println!("值為 : {}", i); } }
執行結果:
值為 : 10 值為 : 20 值為 : 30 值為 : 40 值為 : 50
這個程式中的 for 迴圈完成了對陣列 a 的遍歷。a.iter() 代表 a 的迭代器(iterator),在學習有關於物件的章節以前不做贅述。
當然,for 迴圈其實是可以透過下標來訪問陣列的:
例項
fn main() { let a = [10, 20, 30, 40, 50]; for i in 0..5 { println!("a[{}] = {}", i, a[i]); } }
執行結果:
a[0] = 10 a[1] = 20 a[2] = 30 a[3] = 40 a[4] = 50
身經百戰的開發者一定遇到過幾次這樣的情況:某個迴圈無法在開頭和結尾判斷是否繼續進行迴圈,必須在迴圈體中間某處控制迴圈的進行。如果遇到這種情況,我們經常會在一個 while (true) 迴圈體裡實現中途退出迴圈的操作。
Rust 語言有原生的無限迴圈結構 —— loop:
例項
fn main() { let s = ['R', 'U', 'N', 'O', 'O', 'B']; let mut i = 0; loop { let ch = s[i]; if ch == 'O' { break; } println!("\'{}\'", ch); i += 1; } }
執行結果:
'R' 'U' 'N'
loop 迴圈可以透過 break 關鍵字類似於 return 一樣使整個迴圈退出並給予外部一個返回值。這是一個十分巧妙的設計,因為 loop 這樣的迴圈常被用來當作查詢工具使用,如果找到了某個東西當然要將這個結果交出去:
例項
fn main() { let s = ['R', 'U', 'N', 'O', 'O', 'B']; let mut i = 0; let location = loop { let ch = s[i]; if ch == 'O' { break i; } i += 1; }; println!(" \'O\' 的索引為 {}", location); }
執行結果:
'O' 的索引為 3
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2739580/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python學習-while迴圈練習PythonWhile
- 「學習筆記」迴圈、列表筆記
- 學習JavaScript非同步、事件迴圈JavaScript非同步事件
- node事件迴圈學習筆記事件筆記
- Python基礎學習之迴圈Python
- 10.31學習日報 三種迴圈
- 學習JavaScript迴圈下的async/awaitJavaScriptAI
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- 學習筆記之事件迴圈-Event loop筆記事件OOP
- 碎片化學習Java(十六)Java For迴圈案例Java
- 條件分支與迴圈結構學習
- 深度學習之RNN(迴圈神經網路)深度學習RNN神經網路
- 深度學習迴圈神經網路詳解深度學習神經網路
- Python進階學習分享之迴圈設計Python
- C語言學習【3】——判斷與迴圈C語言
- python 基礎習題6--for迴圈和while迴圈PythonWhile
- Python3學習筆記4 , 迴圈、模組Python筆記
- 碎片化學習Java(十七)Java for迴圈得到閏年Java
- NLP與深度學習(二)迴圈神經網路深度學習神經網路
- 深度學習四從迴圈神經網路入手學習LSTM及GRU深度學習神經網路
- for 迴圈與 while 迴圈While
- while迴圈 case迴圈While
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- Vue學習筆記(三)條件渲染和迴圈渲染Vue筆記
- 無限for迴圈(死迴圈)
- 重學JS(八)—— 跳出迴圈JS
- 小白學python系列-(7)迴圈Python
- yangwenmai/learning-rust: Rust 學習之路AIRust
- 迴圈高階綜合練習
- python基礎 while迴圈練習PythonWhile
- while迴圈以及do while迴圈While
- 習題8-3 陣列迴圈右移 及 練習7-8 方陣迴圈右移陣列
- Rust 程式設計影片教程(進階)——015_1 引用迴圈Rust程式設計
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- Python學習小結—使用者輸入和While迴圈PythonWhile
- Rust 學習筆記Rust筆記
- 學習Rust 函式Rust函式
- if for迴圈