嵌套循环
本课属于 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 保持不变,只用于告诉循环何时停止。
挑战
入门编写一个程序,打印一个指定宽度和高度的星号(*)矩形。
输入:两个整数: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();
// 在下方编写你的代码
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Rust 在线编译器