정처기 감자정처기 감자
공통 기초제어문/반복문

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

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

코딩C언어JavaPython
읽는데 21분 소요
처음 쓰인 날: 2026-02-03
마지막 수정일: 2026-10-01
조회수: —
선수학습(1개)
  • 조건문 (if, if-else, else if)

요약

반복문의 기본 개념을 알아봅니다. 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
코드 하이라이팅 중…

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

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

for문은 리스트나 범위(range)를 순회하면서 반복하는 반복문입니다. C/Java의 for문과 구조가 다릅니다.

python
코드 하이라이팅 중…

변수 자리에 쓰는 이름은 미리 선언하지 않아도 됩니다. C·Java는 int i = 0처럼 변수를 먼저 선언해야 쓸 수 있지만, Python은 값을 넣는 순간 변수가 만들어집니다. for문은 반복할 때마다 대상에서 값을 하나 꺼내 이 변수에 넣으므로, 첫 반복에서 변수가 자동으로 생깁니다.

변수 이름도 키워드가 아니라 작성자가 자유롭게 정하는 이름입니다. i, item, x 무엇을 써도 동작은 같습니다.

python
코드 하이라이팅 중…
for문이 반복 변수 f를 만드는 과정
반복 전에는 f가 없고, 1회차에 for문이 f를 만들어 '사과'를 넣고, 2회차에 '배'로 바꿉니다.

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

python
코드 하이라이팅 중…

for문 실행 순서

c
코드 하이라이팅 중…

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

text
코드 하이라이팅 중…
java
코드 하이라이팅 중…
text
코드 하이라이팅 중…
초기식은 딱 한 번만 실행됩니다
for문에서 초기식(int i = 0)은 루프가 시작할 때 단 한 번만 실행됩니다. 이후에는 조건식 -> 반복 코드 -> 증감식 순서로만 반복됩니다.
python
코드 하이라이팅 중…
text
코드 하이라이팅 중…
range()는 마지막 값을 포함하지 않습니다
range(3)은 0, 1, 2를 생성합니다. 3은 포함되지 않습니다. range(1, 5)는 1, 2, 3, 4를 생성합니다. C/Java의 for(i=0; i<3; i++)과 동일한 결과를 얻으려면 range(3)을 사용합니다.
단계i 값조건 (i < 3)출력
1회0참0
2회1참1
3회2참2
4회3거짓(종료)
단계i 값조건 (i < 3)출력
1회0참0
2회1참1
3회2참2
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에 정리조건만 붙이고 나머지는 다른 곳에
while문에서 변수 변경을 빠뜨리면 무한 루프가 됩니다
while문은 for문과 달리 변수를 직접 변경해야 합니다. i += 1을 빠뜨리면 조건이 영원히 참이 되어 프로그램이 멈추지 않습니다.

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문

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

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

++i vs i++

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

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

단독 사용 시 (차이 없음)

c
코드 하이라이팅 중…

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

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

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

for문에서는 ++i와 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
코드 하이라이팅 중…
for문 안에서 선언한 변수는 그 블록에서만 유효합니다
int j를 안쪽 for문에서 선언하면, 안쪽 루프가 끝날 때 j는 사라집니다. 다음 i 반복에서 안쪽 for문이 다시 시작되면 j는 0부터 새로 시작합니다.

System.out.print vs System.out.println

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

메서드줄바꿈예시 출력
System.out.print()안 함AB (같은 줄)
System.out.println()함A (줄바꿈) B
java
코드 하이라이팅 중…
출력
코드 하이라이팅 중…
java
코드 하이라이팅 중…
출력
코드 하이라이팅 중…
시험에서 print와 println 구분이 중요합니다
정보처리기사 실기에서 출력 결과를 쓸 때 줄바꿈 여부가 정답에 영향을 미칩니다. print는 줄바꿈 없이, println은 줄바꿈과 함께 출력한다는 것을 꼭 기억하세요.

for문으로 배열 순회하기

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

java
코드 하이라이팅 중…

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

range 함수

range() 함수는 정수 범위를 생성합니다. for문과 함께 가장 많이 사용됩니다. range(5)는 0, 1, 2, 3, 4를 생성합니다 (끝 값 5는 포함하지 않음).

python
코드 하이라이팅 중…

range()의 다양한 사용법(시작/끝/간격, C/Java 대응 등)은 range() 함수 상세를 참고하세요.


print() 함수와 end 매개변수

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

python
코드 하이라이팅 중…

end, sep 매개변수의 상세 사용법은 print() 함수 상세를 참고하세요.


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()로 줄바꿈합니다.


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

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(4개)
  • 배열과 리스트의 기초
  • 전설의 완전수 문제 - C언어
  • Java for-each문 (향상된 for문)
  • Java 정렬과 순위 알고리즘
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999