Menu
CoddyTech

嵌套循环

本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 41 课,共 75 课。

嵌套循环就是一个循环中包含另一个循环。外层循环每迭代一次,内层循环都会完成所有迭代。时钟就是一个很好的例子:每过一个小时(外层循环),分针(内层循环)都要走完 60 分钟的完整周期。

嵌套循环示例:

let rows = 2;
let cols = 2;
for x in 0..rows {
    for y in 0..cols {
        println!("{} {}", x, y);
    }
}
// 这会输出:
// 0 0
// 0 1
// 1 0
// 1 1

外层循环(x)运行 rows 次,每次运行时,内层循环(y)都会运行 cols 次。每个循环都有自己的计数器:每次外层循环运行时,y 都会从 0 重新开始,而 rows 和 cols 保持不变,只用于告诉循环何时停止。

challenge icon

挑战

入门

编写一个程序,打印一个指定宽度和高度的星号(*)矩形。

输入:两个整数:width 和 height(起始代码已经读取了它们)。

例如:

如果 width = 5 且 height = 3,输出应为:

*****
*****
*****

如果 width = 4 且 height = 6,输出应为:

****
****
****
****
****
****

每个循环都使用一个新的计数器(例如,用 i 表示行,用 j 表示一行中的星号),并将它与 height 或 width 进行比较。不要更改 height 和 width 本身:每一行都需要再次使用 width。

亲手试试

use std::io;

fn main() {
    let mut width_input = String::new();
    let mut height_input = String::new();
    io::stdin().read_line(&mut width_input).unwrap();
    io::stdin().read_line(&mut height_input).unwrap();
    let width: i32 = width_input.trim().parse().unwrap();
    let height: i32 = height_input.trim().parse().unwrap();
    // 在下方编写你的代码

}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Rust 在线编译器