본문 바로가기
XR개발/C언어

C언어 반복문

by 오머리쿠_OmaryKoo 2025. 1. 25.

프로그래밍에서 반복문은 필수적인 개념이다. 특정 작업을 여러 번 수행해야 할 때, 반복문을 사용하면 코드의 가독성이 향상되고 유지보수가 쉬워진다. 이번 글에서는 C 언어의 대표적인 반복문인 while, for, do-while을 다루고, 중첩 반복문, 무한 루프, break, continue 활용법까지 정리해보겠다.


 

1. 반복문의 개념과 필요성

반복문은 특정 조건을 만족하는 동안 같은 코드 블록을 여러 번 실행할 때 사용한다. 이를 통해 코드의 길이를 줄이고 가독성을 높이며, 유지보수성을 향상시킬 수 있다. 반복문이 없다면 동일한 작업을 여러 번 수행하려면 같은 코드를 반복해서 작성해야 한다. 하지만 반복문을 사용하면 간결한 코드로 효율적인 프로그래밍이 가능하다.

 

반복문의 주요 장점

  • 코드의 중복을 줄일 수 있다.
  • 논리적 흐름을 명확하게 만들어 가독성이 높아진다.
  • 특정 조건이 만족될 때까지 자동으로 실행할 수 있어 프로그램이 더욱 효율적이 된다.

2. while 문: 조건이 참일 때 반복 실행

while 문은 특정 조건이 참(true) 인 동안 계속 실행되는 반복 구조이다. 즉 한 번 실행을 하고나서 다시 조건을 확인하여 조건이 거짓이 될 때까지 계속 실행을 반복하는 것이다. 주로 조건이 언제 끝날지 모르는 경우에 유용하다.

 

기본 구조

 

예제: 1부터 10까지 출력하기

여기서 반복이 어떻게 종료되었는지 중요한데, 변수 i가 1로 초기화된 후에 한 번 반복을 할 때마다 1씩 증가해서 결국 10되면 반복을 중단하게 된다. 만약 i를 증가시키는 문장 i++;가 없다면 반복은 무한히 계속 되며, 이러한 현상을 무한 루프(infinite loop)라고 한다. 따라서 반복문을 사용할 때에는 반드시 반복이 종료되는지 확인해야 한다.

이 코드는 i가 10 이하일 동안 반복하며 1부터 10까지 출력한다. i가 11이 되면 조건이 거짓이 되어 반복이 종료된다.

 

while문 조건식은 참, 거짓으로 계산될 수 있는 수식으로 값이 0이면 거짓으로 간주되고, 그렇지 않으면 참으로 간주된다. 


참고로 if문은 조건이 만족되면 단 한 번만 실행한다. 반면 while 루프는 조건이 만족되면 여러 번 반복 실행한다. 따라서 조건에 따라 딱 한 번만 실행하기를 원하면 if문을 사용하면 되고 한 번 이상 실행시키려면 while루프를 사용하면 된다.

 

 

C언어 조건문

프로그래밍에서 특정 조건에 따라 실행되는 코드 블록을 조건문(Conditional Statement)이라고 한다.C 언어에서는 if 문, if-else 문, 다중 if 문, switch 문을 활용하여 프로그램의 흐름을 제어할 수 있다.1.

omarykoo.tistory.com

 


3. for 문: 반복 횟수가 정해져 있을 때 사용

반복 횟수가 명확할 때 for 문을 사용하면 더 직관적이다. for문은 반복 구조 중에서 가장 많이 사용되는데 장점이 많다.

 

기본 구조

각 구성 요소 설명

• 초기값 (Initialization): 반복문이 시작될 때 변수의 초기값을 설정한다. 여기서 초기값(식)은 가장 먼저 실행되고 딱 한 번만 실행된다. 주로 변수값을 초기화하는 용도로 사용된다.

위의 예제에서 i = 1은 반복문이 처음 실행될 때 변수를 초기화하는 역할을 한다.

 

 

  조건 (Condition): 반복을 계속할지 결정하는 조건을 설정한다. 조건이 참이면 반복이 실행되고, 거짓이면 종료된다.

위의 예제에서 i <= 10이 참이면 반복문이 실행되고, i가 11이 되면 종료된다.

 

 

  증감식 (Increment/Decrement): 반복문이 실행될 때마다 변수의 값을 변화시키는 역할을 한다. 루프의 실행이 끝나면 증감식이 실행된다. 이어서 다시 조건식이 검사되며, 한 번이라도 조건식이 거짓이면 바로 for문을 벗어나게 된다.

위의 예제에서 i++i 값을 1씩 증가시키며 반복 횟수를 조절한다.

 

+증감 수식의 형태

  1. for 문에서의 증감식은 주로 증가식이 많이 사용된다. 위와같이 i++와 같이 변수를 증가시키는 게 대부분이다.
  2. 주로 증가 수식이 많이 이용되지만 때에 따라서는 감소식도 사용된다.
  3. 증감식에서 증가나 감소시킬 때, 1이 아닌 다른 값을 사용할 수도 있다. 가령 printf()함수에서 i가 0,2,4,6,8일 때만 호출되어서 화면에 문자가 출력된다고 하면, for(i = 0; i < 10; i+-2) { pritnf();}로 나타낼 수 있다. 또는 증감식에서 변수를 곱셈을 사용하여 증감시킬수도 있다. 제어변수가 2배씩 증가된다 하면, i값이 1 -> 2-> 4 -> 8과 같이 증가되면, for(i=1; i<10; i*=2){printf();}로 나타낼 수 있다. 여기서 알 수 있듯이 사실상 증감식은 어떤 형태든지 사용할 수 있다. 즉, 복잡한 수식을 증감식으로 사용할 수 있다.

 

 

06_Q&A for문 증감식에선 ;가 없는 이유에 대한 물음.zip

Q1. for문에서 초기값, 조건, 증감식을 사용할 때 구분자로 ;를 사용하지만, 증감식 뒤에는 왜 ;를 붙이지 않는 건가? for 문 구조이 구조에서 각각의 부분을 나누기 위해 초기값과 조건, 조건과 증

omarykoo.tistory.com

 

 

 

예제: 1부터 10까지 합 구하기

이 코드는 for 문을 사용하여 1부터 10까지의 합을 구한다.


 

 

04_Q&A 0으로 초기화 시키는 이유에 대한 물음.zip

Q1. 변수를 0으로 초기화 시키는 이유는?1. 변수의 초기값은 정의되지 않음C 언어에서 지역 변수(local variable)는 초기값이 자동으로 할당되지 않는다. 따라서 초기화를 하지 않은 변수를 사용하면

omarykoo.tistory.com

 

위와같이 C에서 지원하는 반복문에는 크게 나누어 while과 for가 있다. while은 조건이 만족되면 반복을 계속하는 구조이다. while은 미리 반복 횟수를 알 수 없고 조건에 따라서 반복하는 경우에 사용되며, for은 정해진 횟수만큼 반복하는 경우에 사용된다.


4. do-while 문: 최소 1회 실행 보장

do-while 문은 조건을 나중에 검사하는 특징이 있어, 최소 한 번은 실행된다.

while문과 비슷하나 반복 조건을 루프의 처음이 아니라 루프의 끝에서 검사한다는 것이 다르다.

do-while문에서는 조건이 만족되지 않아도 루프 안의 문장이 한번은 실행된다. 이후에 조건을 검사하여서 참이면 반복이 계속된다.

반면 while문에서는 조건이 거짓이면 전혀 반복이 실행되지 않는다.

 

기본 구조

여기서 주의할 건, do-while 문에서 while()다음에 있는 세미콜론이 반드시 있어줘야 한다.

 

예제: 사용자 입력값이 0이면 종료

사용자가 0을 입력할 때까지 숫자를 계속 입력받는 프로그램이다.

 

do-while문은 입력을 처리하는 부분에서 많이 사용된다. 입력을 처리하기 위해서는 일단 외부로부터 입력을 하나 받아야 한다. 따라서 do-while을 이용하여 입력을 받은 후에 이것을 처리하면 보다 간결한 프로그래밍이 가능하다.


while, for, do-while 비교 정리

반복문 특징 사용 예시
while 조건이 참인 동안 실행 특정 조건이 만족될 때까지 반복 (ex: 사용자 입력)
for 반복 횟수가 정해져 있음 정해진 횟수만큼 반복 (ex: 1부터 100까지 합 구하기)
do-while 최소 한 번은 실행됨 메뉴 선택, 사용자 입력 등 최소 1회 실행이 필요한 경우
 

무엇을 쓸 지는 개인의 취향이다. 일반적인 선택 기준은 루프의 반복 횟수를 아는 경우는 for 루프가 while 루프에 비해 약간 더 편리하다. 즉 루프 제어 변수를 증가하는 것을 잊어버린다거나 하는 일이 while 루프에 비하여 덜 발생한다. 만약 조건만 존재하고 정확한 반복 횟수는 모르는 경우에는 while 구조가 좋다. 반드시 한번은 수행되어야 하는 문장들이 있다면 do-while구조가 제격이다.

 

그리고 while과 for는 반복하기 전에 조건을 검사하는 구조이고, do-while는 먼저 실행한 후에 반복 조건을 검사한다.


6. 중첩 반복문 (Nested Loops)

중첩 반복문은 반복문 내부에 또 다른 반복문을 포함하는 구조이다.

 

예제: 별 피라미드 출력


7. 무한 루프와 break, continue 활용하기

무한 루프 (Infinite Loop)

무한 루프는 종료 조건이 없거나 항상 참(true)이 되는 조건을 사용하여 무한히 반복되는 루프를 의미한다. 일반적으로 게임 루프나 서버 프로세스에서 사용되지만, 의도하지 않게 발생하면 프로그램이 멈추지 않는 오류를 일으킬 수도 있다.

위 코드는 종료 조건이 없기 때문에 사용자가 강제 종료(Ctrl + C)하지 않는 이상 영원히 실행된다.


8. break 문: 루프 강제 종료

break 문을 사용하면 특정 조건을 만족할 때 반복문을 강제로 종료할 수 있다.

 

예제: 특정 입력값에서 루프 종료

사용자가 0을 입력하면 루프를 강제 종료한다.


9. continue 문: 특정 조건에서 다음 반복으로 건너뛰기

continue 문은 특정 조건을 만족하면 해당 반복을 건너뛰고 다음 반복으로 진행한다.

 

예제: 짝수만 출력하기

이 코드는 홀수를 건너뛰고 짝수만 출력한다.


break와 continue 비교 정리

구분 동작 방식 사용 예시
break 반복문을 즉시 종료하고 탈출 특정 조건에서 루프 종료 (ex: 사용자가 0을 입력하면 종료)
continue 현재 반복을 건너뛰고 다음 반복 실행 특정 조건일 때 실행 건너뛰기 (ex: 홀수는 건너뛰고 짝수만 출력)
 
728x90