Menu
CoddyTech

중첩 반복문

Coddy Rust 여정의 기초 섹션에 포함된 레슨. 75개 중 41번째.

중첩 루프는 단순히 다른 루프 안에 있는 루프입니다. 내부 루프는 외부 루프가 한 번 반복될 때마다 모든 반복을 완료합니다. 이를 설명하는 좋은 비유는 시계입니다. 각 시간(외부 루프)마다 분침(내부 루프)은 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 컴파일러