Menu
Coddy logo textTech

중첩 반복문

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

하나의 루프 안에 다른 루프를 배치하여 중첩 루프(nested loop)를 만들 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행되므로, 이 패턴은 그리드, 테이블 또는 조합을 작업할 때 유용합니다.

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

이것은 여섯 줄을 출력합니다. i의 각 값에 대해, 내부 루프는 j의 모든 값을 거치며 실행됩니다.

처음에는 i가 1인 동안 j가 1, 2, 3으로 변합니다. 그 다음 i가 2가 되고 j는 다시 1, 2, 3으로 변합니다.

실용적인 예시는 간단한 곱셈 패턴을 만드는 것입니다:

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를 사용하십시오.

예를 들어, 입력이 34라면 출력은 다음과 같아야 합니다:

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

입력이 25라면 출력은 다음과 같아야 합니다:

* * * * *
* * * * *

치트 시트

중첩 루프를 사용하면 하나의 루프를 다른 루프 안에 배치할 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행됩니다.

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

이것은 총 6줄을 출력합니다. i=1일 때, j는 1, 2, 3을 반복합니다. 그런 다음 i=2일 때, j는 다시 1, 2, 3을 반복합니다.

출력을 같은 줄에 유지하려면 print를 사용하고, 새 줄로 이동하려면 puts ""를 사용하세요:

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

for 루프 안에 times 루프를 사용하는 것과 같이 서로 다른 루프 유형을 혼합하여 사용할 수 있습니다.

직접 해보기

# 입력 읽기
rows = gets.to_i
cols = gets.to_i

# TODO: 아래에 코드를 작성하세요
# 중첩 루프를 사용하여 별표로 된 사각형을 출력하세요
# 행 내의 별표에는 print를 사용하고, 다음 줄로 이동하려면 puts를 사용하세요
quiz icon실력 점검

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

기초의 모든 레슨