C언어 기초

준비중..

C언어 기초

예제와 함께 C언어 기초 정복!

08 반복문

# 반복문(loops) <div class="embed-responsive embed-responsive-16by9"> <iframe src="https://www.youtube.com/embed/PNJ7Gv1Gf-M" frameborder="0" allowfullscreen></iframe> </div> ## 목차 1. 반복문이란 2. for문 3. while문 4. 분기문 4.1 break 4.2 continue ## 1. 반복문이란 반복문이란, 반복적인 코드를 단축시키는 문법이다. 예를들어 1부터 10000까지 출력하는 프로그램을 반복문 없이 작성하면 아래와 같다. ``` #include <stdio.h> int main() { printf("1\n"); printf("2\n"); printf("3\n"); ... printf("10000\n"); return 0; } ``` 이를 반복문을 통해 개선하면 단 몇 줄로 작성 가능하다. ``` #include <stdio.h> int main() { for (int i = 1; i <= 10000; i++) printf("%d\n", i); return 0; } ``` ## 2. for문 ### 2.1 정의 for문은 대표적 반복문으로서, 반복 횟수가 명확한 경우 사용한다. ### 2.2 형식 for문의 형식은 아래와 같다. ``` for ( 초기식 ; 조건식 ; 갱신 ) { 반복내용 } ``` ### 2.3 실행 흐름 for문은 다음 흐름으로 동작한다. 반복문 시작 전 (1) 초기식을 수행한다. 다음으로 (2) 조건식을 검사하고, 참인경우 (3) 반복내용을 수행한다. 반복내용이 끝나면, (4) 갱신을 한 뒤 다시 조건식을 검사한다. 이러한 과정을 조건식이 거짓이 될 때 까지 반복한다. ### 2.4 예제: 총합 구하기 아래는 1부터 10까지 총합을 구하는 코드이다. ``` /* for: 반복횟수가 명확한 경우 */ int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } printf("%d\n", sum); // 55 = 1 + 2+ 3 + ... + 9 + 10 ``` ## 3. while문 ### 3.1 정의 while문은 또 다른 반복문으로서, 반복 횟수가 조건에 따라 다른경우 사용한다. ### 3.2 형식 while문의 형식은 아래와 같다. ``` while ( 조건식 ) { 반복내용 } ``` ### 3.3 실행 흐름 while문의 실행흐름은 간단하다. (1) 조건식이 참인 경우, (2) 반복내용을 수행한다. 이를 조건식이 거짓이 될 때까지 반복한다. ### 3.4 예제: 두 정수의 최소 공배수 아래는 두 정수 a와 b의 최소 공배수를 구하는 코드이다. ``` /* while: 반복횟수가 상황따라 다른 경우 */ int a = 3, b = 4, n = 1; while (!(n % a == 0 && n % b == 0)) { n++; // n을 1 증가 } printf("\n최소 공배수: %d\n", n); ``` ## 4. 분기문 분기문은 break와 continue가 있다. ### 4.1 break문 break문은 실행 흐름을 반복문에서 탈출시킨다. 다음 코드는 오이 알러지로 식사를 마무리하지 못한 예이다. ``` /* break: 반복문 강제 탈출 > 예제3-오이 알레르기 */ char foods[][100] = {"피자", "곱창", "오이", "치킨"}; for (int i = 0; i < 4; i++) { printf("%s > ", foods[i]); if (strcmp(foods[i], "오이") == 0) { printf("알러지 발생! > "); break; } } printf("식사 종료!\n"); ``` ### 4.2 continue문 continue문은 실행 흐름을 다음 반복으로 강제 이동시킨다. 다음 코드는 1부터 7까지의 합을 구하는데, 3의 배수는 제외시키는 예이다. ``` /* continue: 다음 반복으로 강제 이동 > 1부터 7 곱(3의 배수 제외) */ int result = 1; for (int i = 1; i <= 7; i++) { if (i % 3 == 0) continue; result *= i; } printf("결과: %d\n", result); ```

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!