반복문 (for, while) - 루프의 기초

코딩C언어JavaPython
읽는데 21분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-03-20
조회수: 1,314

요약

반복문의 기본 개념을 알아봅니다. for문과 while문의 구조, break와 continue 등 정보처리기사 실기에 출제되는 루프 개념을 정리합니다.

반복문 핵심 정리

종류사용 시점예시
for반복 설정을 괄호 안에 정리할 때for(i=0; i<5; i++)
while조건만 걸고, 나머지는 다른 곳에서 관리할 때while(n > 0)
break루프 즉시 종료if(found) break;
continue다음 반복으로 건너뛰기if(skip) continue;
종류사용 시점예시
for반복 설정을 괄호 안에 정리할 때for(i=0; i<5; i++)
while조건만 걸고, 나머지는 다른 곳에서 관리할 때while(n > 0)
break루프 즉시 종료if(found) break;
continue다음 반복으로 건너뛰기if(skip) continue;
종류사용 시점예시
for리스트나 범위를 순회for i in range(5):
while조건만 걸고, 나머지는 다른 곳에서 관리할 때while n > 0:
range정수 범위를 생성range(0, 5)
break루프 즉시 종료if found: break
continue다음 반복으로 건너뛰기if skip: continue

for문 쌩기초

for문은 반복에 필요한 설정을 괄호 안에 정리해서 쓰는 반복문입니다.

  • 초기식: 반복을 시작하기 전에 변수를 준비하는 부분 (예: i를 0으로 설정)
  • 조건식: 반복을 계속할지 판단하는 부분 (예: i가 3보다 작은가?)
  • 증감식: 한 번 반복할 때마다 변수를 변경하는 부분 (예: i를 1 증가)
c
코드 하이라이팅 중...
java
코드 하이라이팅 중...

Python의 for문은 C/Java와 구조가 다릅니다. 리스트나 범위(range)를 순회하는 방식입니다.

python
코드 하이라이팅 중...

가장 많이 쓰는 패턴은 range() 함수와 함께 사용하는 것입니다.

python
코드 하이라이팅 중...

for문 실행 순서

c
코드 하이라이팅 중...

int는 정수를 저장하는 자료형, printf는 화면에 출력하는 함수입니다. %d는 "여기에 정수를 넣겠다"는 표시입니다.

text
코드 하이라이팅 중...
java
코드 하이라이팅 중...
text
코드 하이라이팅 중...
python
코드 하이라이팅 중...
text
코드 하이라이팅 중...
단계i 값조건 (i < 3)출력
1회00
2회11
3회22
4회3거짓(종료)
단계i 값조건 (i < 3)출력
1회00
2회11
3회22
4회3거짓(종료)
단계i 값range(3)에 남은 값출력
1회01, 20
2회121
3회2없음2
--순회 끝(종료)
for문 실행 순서
초기화 → 조건 검사 → 코드 실행 → 증감식 순서로 반복됩니다. 조건이 거짓이 되면 for문이 종료됩니다.

for문 구성요소 생략

C언어의 for문은 초기식, 조건식, 증감식을 각각 생략할 수 있습니다. 세미콜론(;)은 반드시 유지해야 합니다.

초기식 생략 — 변수가 이미 선언/초기화된 경우

c
코드 하이라이팅 중...

i가 for문 바깥에서 이미 값을 가지고 있으므로 초기식이 필요 없습니다. 기출문제에서 자주 나오는 패턴입니다.

증감식 생략 — 루프 본문에서 직접 변수를 변경하는 경우

c
코드 하이라이팅 중...

모두 생략 (무한 루프)

c
코드 하이라이팅 중...

for문 구성요소 생략

Java의 for문은 초기식, 조건식, 증감식을 각각 생략할 수 있습니다. 세미콜론(;)은 반드시 유지해야 합니다.

초기식 생략 — 변수가 이미 선언/초기화된 경우

java
코드 하이라이팅 중...

i가 for문 바깥에서 이미 값을 가지고 있으므로 초기식이 필요 없습니다. 기출문제에서 자주 나오는 패턴입니다.

증감식 생략 — 루프 본문에서 직접 변수를 변경하는 경우

java
코드 하이라이팅 중...

모두 생략 (무한 루프)

java
코드 하이라이팅 중...

while문 쌩기초

while문조건만 while에 붙이고, 초기식·증감식은 다른 곳에 작성하는 반복문입니다.

c
코드 하이라이팅 중...

while문 예시

c
코드 하이라이팅 중...
while문 실행 순서
while문은 조건을 먼저 검사한 뒤 반복 코드를 실행합니다. i++이 반복 코드 안에 있어서 직접 작성해야 합니다.

중괄호 없는 while문

반복할 코드가 한 줄이면 중괄호를 생략할 수 있습니다.

c
코드 하이라이팅 중...
c
코드 하이라이팅 중...

기출문제에서 자주 나오는 패턴입니다. 예를 들어 변수 값을 조건에 도달할 때까지 증가시킬 때 다음과 같이 사용합니다.

c
코드 하이라이팅 중...

a++만 반복하므로 중괄호 없이 한 줄로 작성한 것입니다.

for문 vs while문

c
코드 하이라이팅 중...

while문조건만 while에 붙이고, 초기식·증감식은 다른 곳에 작성하는 반복문입니다.

java
코드 하이라이팅 중...

while문 예시

java
코드 하이라이팅 중...

for문 vs while문

java
코드 하이라이팅 중...

while문조건만 while에 붙이고, 초기식·증감식은 다른 곳에 작성하는 반복문입니다.

python
코드 하이라이팅 중...

while문 예시

python
코드 하이라이팅 중...

for문 vs while문

python
코드 하이라이팅 중...
구분for문while문
초기식 위치괄호 안루프 밖
증감식 위치괄호 안루프 안
핵심 차이설정을 괄호 안에 정리조건만 붙이고 나머지는 다른 곳에
구분for문while문
초기식 위치괄호 안루프 밖
증감식 위치괄호 안루프 안
핵심 차이설정을 괄호 안에 정리조건만 붙이고 나머지는 다른 곳에
구분for문while문
반복 기준리스트, range 등을 순회조건이 참인 동안 반복
증감식자동 (다음 값으로 이동)직접 작성해야 함
핵심 차이순회 대상을 for에 정리조건만 붙이고 나머지는 다른 곳에

break - 루프 종료 쌩기초

break는 루프를 즉시 종료합니다.

c
코드 하이라이팅 중...
text
코드 하이라이팅 중...

배열에서 값 찾기

c
코드 하이라이팅 중...
java
코드 하이라이팅 중...
python
코드 하이라이팅 중...
text
코드 하이라이팅 중...

리스트에서 값 찾기

python
코드 하이라이팅 중...

continue - 다음 반복으로 쌩기초

continue는 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.

c
코드 하이라이팅 중...
continue 동작 흐름
continue를 만나면 나머지 코드를 건너뛰고 증감식(i++)으로 점프합니다. i=2일 때 printf를 실행하지 않고 바로 i++로 넘어갑니다.
java
코드 하이라이팅 중...
python
코드 하이라이팅 중...
i동작출력
0출력0
1출력1
2continue(건너뜀)
3출력3
4출력4

break vs continue

키워드동작결과
break루프 완전 종료루프 밖으로 탈출
continue현재 반복만 건너뜀다음 반복 계속
break vs continue 비교
break는 i=2에서 루프를 완전히 탈출하여 0 1만 출력됩니다. continue는 i=2만 건너뛰고 나머지는 계속 반복하여 0 1 3 4가 출력됩니다.

do-while문 기초

do-while문먼저 실행한 뒤 조건을 검사합니다. 조건이 거짓이어도 최소 1회는 실행됩니다.

c
코드 하이라이팅 중...
구분while문do-while문
조건 검사 시점먼저 검사 후 실행먼저 실행 후 검사
최소 실행 횟수0회 (조건이 거짓이면 실행 안 함)1회 (무조건 한 번은 실행)
c
코드 하이라이팅 중...

do-while문먼저 실행한 뒤 조건을 검사합니다. 조건이 거짓이어도 최소 1회는 실행됩니다.

java
코드 하이라이팅 중...
구분while문do-while문
조건 검사 시점먼저 검사 후 실행먼저 실행 후 검사
최소 실행 횟수0회 (조건이 거짓이면 실행 안 함)1회 (무조건 한 번은 실행)
java
코드 하이라이팅 중...

++i vs i++ 기초

증감 연산자는 변수를 1 증가(++) 또는 1 감소(--)시키는 연산자입니다. ++ii++ 둘 다 i를 1 증가시키지만, 증가 시점과 값을 사용하는 순서가 다릅니다.

표현이름동작
++i전위 증가먼저 증가, 그 다음 값 사용
i++후위 증가먼저 값 사용, 그 다음 증가

단독 사용 시 (차이 없음)

c
코드 하이라이팅 중...

for문의 증감식에서는 결과가 같습니다.

값을 사용할 때 (차이 있음)

a = ++i처럼 증감 결과를 다른 변수에 대입하거나 수식 안에서 사용할 때는 전위/후위의 결과가 달라집니다. 자세한 내용은 증감 연산자 - 값을 사용할 때를 참고하세요.


중첩 반복문 기초

반복문 안에 반복문을 넣을 수 있습니다.

c
코드 하이라이팅 중...

출력:

text
코드 하이라이팅 중...

단계별 실행 과정

바깥 루프(i)가 1회 실행될 때마다 안쪽 루프(j)가 처음부터 끝까지 실행됩니다.

i = 0일 때:

j 값조건 (j < 3)출력
0(0,0)
1(0,1)
2(0,2)
3거짓안쪽 루프 종료 → \n 출력

i = 1일 때:

j 값조건 (j < 3)출력
0(1,0)
1(1,1)
2(1,2)
3거짓안쪽 루프 종료 → \n 출력

i = 2일 때: 조건 i < 2가 거짓 → 바깥 루프 종료

중첩 반복문 실행 과정
ⓐ 바깥 for문이 1회 실행될 때마다 ⓑ 안쪽 for문이 처음부터 끝까지 실행됩니다. 안쪽 for문이 끝나면 j는 변수 스코프에 의해 사라집니다.

변수 스코프

C언어에서 블록(block) 이란 중괄호 {}로 감싼 코드 영역을 말합니다. 블록 안에서 선언한 변수는 그 블록이 끝나면 사라집니다. 이 변수가 유효한 범위를 변수 스코프(scope)라고 합니다.

for (int j = 0; ...) 처럼 for문 안에서 선언한 변수는 해당 for문 블록 안에서만 사용할 수 있습니다.

c
코드 하이라이팅 중...

System.out.print vs System.out.println

Java에서 출력할 때 사용하는 두 메서드의 차이를 반드시 알아야 합니다.

메서드줄바꿈예시 출력
System.out.print()안 함AB (같은 줄)
System.out.println()A (줄바꿈) B
java
코드 하이라이팅 중...

for문으로 배열 순회하기

for문은 배열과 함께 사용하는 경우가 매우 많습니다.

java
코드 하이라이팅 중...

a.length는 배열 a에 들어있는 원소의 개수를 알려줍니다. 위 예시에서는 3입니다. 배열에 대한 자세한 내용은 배열 페이지를 참고하세요.

range 함수

range() 함수는 정수 범위를 생성합니다. for문과 함께 가장 많이 사용됩니다.

python
코드 하이라이팅 중...
python
코드 하이라이팅 중...
표현생성되는 값C/Java 대응
range(5)0, 1, 2, 3, 4for(i=0; i<5; i++)
range(2, 6)2, 3, 4, 5for(i=2; i<6; i++)
range(0, 10, 3)0, 3, 6, 9for(i=0; i<10; i+=3)

Python의 print() 함수는 기본적으로 출력 후 줄바꿈을 합니다. end 매개변수로 줄바꿈 대신 다른 문자를 지정할 수 있습니다.

사용법줄바꿈예시 출력
print("A")A (줄바꿈) B
print("A", end="")안 함AB (같은 줄)
print("A", end=" ")안 함 (공백)A B (공백 구분)
python
코드 하이라이팅 중...

sep 매개변수와 기본 구분자

print(a, b, c)처럼 여러 값을 한 번에 넘기면 파이썬은 기본적으로 공백 한 칸으로 구분해 출력합니다. 이 구분자는 sep 매개변수로 바꿀 수 있습니다.

사용법결과
print("A", "B", "C")A B C (기본 공백 구분)
print("A", "B", "C", sep="")ABC (구분 없음)
print("A", "B", "C", sep=",")A,B,C (콤마 구분)
print("A", "B", "C", sep="-")A-B-C (하이픈 구분)
python
코드 하이라이팅 중...

sepend는 함께 쓸 수도 있습니다. sep은 인자들 사이에 들어가고, end는 모두 출력한 에 붙습니다.

python
코드 하이라이팅 중...

for문으로 리스트 순회하기

for문은 리스트와 함께 사용하는 경우가 매우 많습니다.

값을 직접 순회

python
코드 하이라이팅 중...

인덱스로 순회

인덱스를 사용하면 리스트의 위치 번호로 각 요소에 접근할 수 있습니다.

python
코드 하이라이팅 중...

len(a)는 리스트 a에 들어있는 원소의 개수를 알려줍니다. 위 예시에서는 3입니다.

인덱스와 값을 동시에 순회

python
코드 하이라이팅 중...

enumerate()는 인덱스와 값을 동시에 알려주는 함수입니다. 자세한 내용은 enumerate 함수 페이지를 참고하세요.


중첩 반복문 기초

반복문 안에 반복문을 넣을 수 있습니다. 시험에서 자주 출제되는 패턴입니다.

python
코드 하이라이팅 중...

출력:

text
코드 하이라이팅 중...

단계별 실행 과정

바깥 루프(i)가 1회 실행될 때마다 안쪽 루프(j)가 처음부터 끝까지 실행됩니다.

i = 0일 때:

j 값range(3) 남은 값출력
01, 2(0,0)
12(0,1)
2없음(0,2)
-순회 끝안쪽 루프 종료 → 줄바꿈

i = 1일 때:

j 값range(3) 남은 값출력
01, 2(1,0)
12(1,1)
2없음(1,2)
-순회 끝안쪽 루프 종료 → 줄바꿈

i = 2: range(2)의 순회가 끝남 → 바깥 루프 종료

2차원 리스트와 중첩 반복문

2차원 리스트를 순회할 때 중첩 반복문을 사용합니다. 이 패턴은 정보처리기사 실기에 출제된 바 있습니다.

python
코드 하이라이팅 중...

바깥 for문은 lol의 각 하위 리스트를 순회하고, 안쪽 for문은 하위 리스트의 각 요소를 순회합니다. end=""로 같은 줄에 출력하고, 내부 반복이 끝나면 print()로 줄바꿈합니다.


정보처리기사 실기 대비 문제