강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

반복문과 range

range 질문

작성

·

21

0

반복문과 range 강의 챕터 4:51

for i in range(3):

j=0

while j<3:

print("*", end=" ")

j+=1

print()

 

위 구문에 대해서 range 의미를 잘 모르겠습니다.

range(3)이니까 0~2까지 해서 3개가 된다는 것은 이해가 됐고, 개행이 2번 되어 행이 3개가 된다는 것은 이해가 됐습니다.

하지만 왜 각 행마다 개수가 range의 어떤 역할 때문에 *이 3개씩 있는지 이해가 되지 않습니다.

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

별이 가로로 3개씩인 것은 range와 상관없습니다.

오히려 j의 반복문 때문입니다.

j는 0부터 시작합니다. 그런데 아래에 j가 3보다 작을 때까지는 계속 print를 하라고 합니다.

처음에 j가 0일 때 *을 출력했고, 그다음에 j+=1 구문에 의해서 j가 2일 때까지 가로로 출력합니다.

지금 end 파라미터의 값이 " " 한 칸 띄는 것으로 되어있으니까 개행이 안되고 띄어서 가로 옆으로 출력되죠.

 

그 다음에 while문을 벗어납니다. 그 뒤에 일반 print()를 통해 개행을 하게 됩니다. print()함수는 기본적으로 end='\n' 으로 되어있어 개행하는 효과가 발생합니다.

 

while은 벗어났는데 아직 i가 0일 때만 한 것입니다. 그 다음에 i가 1로 바뀝니다.

그리고 다시 j를 0부터 시작하죠.

 

이렇게 반복해서 그 출력값이 되는 것입니다.

 

dhkdxo12님의 프로필 이미지
dhkdxo12
질문자

그러면 range의 역할이 해당 구문에서는 어떤 역할을 하기 위해서 있는건가요?

주말코딩님의 프로필 이미지
주말코딩
지식공유자

3번 돌리기 위해서 있습니다. 횟수로 이용되기 위함입니다.

0

안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.

반복문과 range에 대한 질문을 주셔서 감사드립니다. 코드를 이해하는데 있어서 range 함수와 반복문들의 역할을 파악하는 것이 중요합니다. 먼저, 코드를 조금씩 해석해 보겠습니다:

for i in range(3):
    j = 0
    while j < 3:
        print("*", end=" ")
        j += 1
    print()

이 코드의 주요 포인트는 두 가지 반복문(forwhile)이 혼합되어 있다는 것입니다.

  1. for i in range(3):

    • 이 부분은 외부 반복문으로, i는 0, 1, 2의 세 가지 값을 순차적으로 가지게 됩니다. 각각의 i 값마다 내부의 while 루프가 실행됩니다.
    • 따라서 외부 루프가 3번 반복됩니다.
  2. while j < 3:

    • 이 부분은 내부 반복문으로, j가 0부터 시작하여 3보다 작은 동안 반복됩니다.
    • 즉, j는 0, 1, 2 인 동안 실행되어 print("*", end=" ") 구문을 3번 실행합니다.

이 두 반복문이 결합되어 결과적으로 각 for 루프가 돌아갈 때마다 while 루프가 3번 실행되며, 그 사이에 별표 3개(* * *)가 출력됩니다. 그리고 print() 함수는 기본적으로 줄 바꿈을 포함하므로, 각 for 루프 사이에 줄이 바뀌면서 세 줄의 별표가 만들어집니다.

제공된 코드에서는 내부 while 루프가 *을 3번 출력하도록 설계된 것입니다. 따라서, 각 행에는 항상 3개의 *가 출력되는 것입니다.

관련된 범위의 역할과 반복문 처리에 대한 추가 정보가 필요하시다면, 다음의 유사한 질문을 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

질문하기