Rust - 迴圈



可能有些情況下,需要重複執行一段程式碼塊。通常,程式指令是順序執行的:函式中的第一條語句首先執行,然後是第二條,依此類推。

程式語言提供各種控制結構,允許更復雜的執行路徑。

迴圈語句允許我們多次執行一條語句或一組語句。下面是在大多數程式語言中迴圈語句的一般形式。

loop statement

Rust 提供不同型別的迴圈來處理迴圈需求:

  • while
  • loop
  • for

確定迴圈

迭代次數確定/固定的迴圈稱為確定迴圈。for迴圈是確定迴圈的一種實現。

For迴圈

for迴圈執行程式碼塊指定的次數。它可以用於迭代一組固定的值,例如陣列。for迴圈的語法如下所示:

語法

for temp_variable in lower_bound..upper_bound {
   //statements
}

for迴圈示例如下所示:

fn main(){
   for x in 1..11{ // 11 is not inclusive
      if x==5 {
         continue;
      }
      println!("x is {}",x);
   }
}

注意:變數x僅在for塊內可訪問。

輸出

x is 1
x is 2
x is 3
x is 4
x is 6
x is 7
x is 8
x is 9
x is 10

不確定迴圈

當迴圈的迭代次數不確定或未知時,使用不確定迴圈。

不確定迴圈可以使用:

序號 名稱及描述
1

While

while迴圈在每次指定條件評估為true時執行指令。

2

Loop

loop是一個while(true)不確定迴圈。

while迴圈示例

fn main(){
   let mut x = 0;
   while x < 10{
      x+=1;
      println!("inside loop x value is {}",x);
   }
   println!("outside loop x value is {}",x);
}

輸出如下:

inside loop x value is 1
inside loop x value is 2
inside loop x value is 3
inside loop x value is 4
inside loop x value is 5
inside loop x value is 6
inside loop x value is 7
inside loop x value is 8
inside loop x value is 9
inside loop x value is 10
outside loop x value is 10

loop迴圈示例

fn main(){
   //while true

   let mut x = 0;
   loop {
      x+=1;
      println!("x={}",x);

      if x==15 {
         break;
      }
   }
}

break語句用於將控制權從一個結構中轉移出去。在迴圈中使用break會導致程式退出迴圈。

輸出

x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10
x=11
x=12
x=13
x=14
x=15

Continue語句

continue語句跳過當前迭代中的後續語句,並將控制權返回到迴圈的開頭。與break語句不同,continue不會退出迴圈。它終止當前迭代並開始後續迭代。

continue語句示例如下。

fn main() {

   let mut count = 0;

   for num in 0..21 {
      if num % 2==0 {
         continue;
      }
      count+=1;
   }
   println! (" The count of odd values between 0 and 20 is: {} ",count);
   //outputs 10
}

上述示例顯示0到20之間偶數值的數量。如果數字是偶數,則迴圈退出當前迭代。這是使用continue語句實現的。

0到20之間奇數值的數量是10。

廣告