Day 6:迴圈(loop / while / for)

學習目標

  • 熟練 loop / while / for 三種迴圈
  • 理解 loop 可以回傳值
  • 用 break、continue 控制流程

今日重點

loop(無限迴圈,可回傳值)

let mut count = 0;
let result = loop {
    count += 1;
    if count == 10 {
        break count * 2;  // break 可以帶回傳值
    }
};
println!("Result: {}", result);  // 20

while

let mut n = 1;
while n < 1000 {
    n *= 2;
}
println!("n = {}", n);  // 1024

for 搭配範圍

for i in 0..5 {      // 0,1,2,3,4
    println!("i = {}", i);
}

for i in 0..=5 {     // 0,1,2,3,4,5(含 5)
    println!("i = {}", i);
}

迭代集合

let numbers = vec![1, 2, 3, 4, 5];
for number in &numbers {
    println!("Number: {}", number);
}

練習

fn main() {
    // 1. 用 for 算出 1..=100 的總和
    // 2. 用 loop 找出第一個大於 100 的平方數
    // 3. 用 while 印出 10 到 1 倒數

    let sum: i32 = (1..=100).sum();
    println!("Sum 1..100 = {}", sum);
}

自我檢查

  • 能說出三種迴圈的適用時機
  • 知道 loop 怎麼回傳值
  • 知道 0..50..=5 的差別
  • 會用 break / continue