Menu
CoddyTech

중첩 반복문

Coddy Ruby 여정의 기초 섹션에 포함된 레슨. 88개 중 46번째.

중첩 루프를 만들려면 루프 안에 다른 루프를 배치할 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행되므로, 이 패턴은 격자, 표 또는 조합을 다룰 때 유용합니다.

rows = 2
cols = 3
for i in 1..rows
  for j in 1..cols
    puts "i=#{i}, j=#{j}"
  end
end

이 코드는 여섯 줄을 출력합니다. i의 각 값에 대해 내부 루프는 j의 모든 값을 순회합니다.

먼저 i는 1이고, j는 1, 2, 3으로 진행됩니다. 그런 다음 i는 2가 되고, j는 다시 1, 2, 3으로 진행됩니다. rows와 cols는 절대 바뀌지 않습니다. 이 변수들은 루프가 언제 멈출지만 알려 줍니다.

실용적인 예로 간단한 곱셈 패턴을 만들어 볼 수 있습니다:

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

이 코드는 3x3 제품 그리드를 출력합니다. print는 값을 같은 줄에 유지하고, puts ""는 각 행이 완료된 후 새 줄로 이동합니다. for 루프 안에 times 루프를 사용하는 것처럼 서로 다른 루프 유형을 함께 사용할 수도 있습니다.

challenge icon

챌린지

쉬움

입력에서 정수 두 개를 읽습니다:

  1. rows - 행의 개수
  2. cols - 열의 개수

중첩 루프를 사용해 주어진 크기의 별표(*)로 이루어진 직사각형을 출력하세요. 각 행에는 공백으로 구분된 별표 cols개가 있어야 하며, 각 행은 별도의 줄에 출력되어야 합니다.

행 안의 별표를 출력할 때는 print를 사용하고, 각 행 다음에 다음 줄로 이동할 때는 puts를 사용하세요.

예를 들어 입력이 3과 4이면 출력은 다음과 같아야 합니다:

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

입력이 2와 5이면 출력은 다음과 같아야 합니다:

* * * * *
* * * * *

행의 마지막 * 뒤에는 공백이 없습니다.

각 루프마다 새 카운터를 사용하고(예를 들어 행에는 row, 한 행의 별표에는 col) 이를 rows 또는 cols와 비교하세요. rows와 cols 자체는 변경하지 마세요. 각 행에서 cols를 다시 사용해야 합니다.

직접 해보기

# 입력을 읽습니다
rows = gets.to_i
cols = gets.to_i

# TODO: 아래에 코드를 작성하세요
# 중첩 반복문을 사용해 별표로 이루어진 직사각형을 출력하세요
# 행 안의 별표는 print로 출력하고, 다음 줄로 넘어갈 때는 puts를 사용하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Ruby 컴파일러