Skip to content

2. 流程控制

if语句

  1. 第一种
rust
if condition == true {
    // A...
} else {
    // B...
}
if condition == true {
    // A...
} else {
    // B...
}

2.第二种

此处返回的 5 和 6 就是同一个类型,如果返回类型不一致就会报错

rust
let number = if condition {
    5
} else {
    6
};
let number = if condition {
    5
} else {
    6
};

else if

rust
if n % 4 == 0 {
    println!("number is divisible by 4");
} else if n % 3 == 0 {
    println!("number is divisible by 3");
} else if n % 2 == 0 {
    println!("number is divisible by 2");
} else {
    println!("number is not divisible by 4, 3, or 2");
}
if n % 4 == 0 {
    println!("number is divisible by 4");
} else if n % 3 == 0 {
    println!("number is divisible by 3");
} else if n % 2 == 0 {
    println!("number is divisible by 2");
} else {
    println!("number is not divisible by 4, 3, or 2");
}

for 循环

  1. 循环数字
rust
// 这种写法包含5
for i in 1..=5 {
    println!("{}", i);
}

// 这种写法不包含5
for i in 1..5 {
    println!("{}", i);
}
// 这种写法包含5
for i in 1..=5 {
    println!("{}", i);
}

// 这种写法不包含5
for i in 1..5 {
    println!("{}", i);
}
  1. 循环引用
rust
for item in &container {
  // ...
}
for item in &container {
  // ...
}
  1. 循环中修改值
rust
for item in &mut collection {
  // ...
}
for item in &mut collection {
  // ...
}
  1. 循环中使用索引
rust
fn main() {
  let a = [4, 3, 2, 1];
  // `.iter()` 方法把 `a` 数组变成一个迭代器
  for (i, v) in a.iter().enumerate() {
      println!("第{}个元素是{}", i + 1, v);
  }
}
fn main() {
  let a = [4, 3, 2, 1];
  // `.iter()` 方法把 `a` 数组变成一个迭代器
  for (i, v) in a.iter().enumerate() {
      println!("第{}个元素是{}", i + 1, v);
  }
}

while 循环

rust
fn main() {
    let mut n = 0;

    while n <= 5  {
        println!("{}!", n);

        n = n + 1;
    }

    println!("我出来了!");
}
fn main() {
    let mut n = 0;

    while n <= 5  {
        println!("{}!", n);

        n = n + 1;
    }

    println!("我出来了!");
}

loop 循环

rust
loop {
    if n > 5 {
        break
    }
    println!("{}", n);
    n+=1;
}
loop {
    if n > 5 {
        break
    }
    println!("{}", n);
    n+=1;
}

建议使用iter遍历

建议使用iter()遍历,而不是直接遍历a

a.iter() 可以返回一个迭代器,它可以遍历集合 a 中的每个元素的引用。如果你不使用 iter() 方法,而是直接使用 a,则会发生隐式的解引用操作,将集合中的元素复制到迭代器中。使用 iter() 方法可以避免在迭代器中复制集合中的元素,从而提高性能。

rust
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
  println!("the value is: {}", element);
}
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
  println!("the value is: {}", element);
}