[C언어-막코딩] 15장 반복문(FOR문)
kr-dev·@codingman·
0.000 HBD[C언어-막코딩] 15장 반복문(FOR문)
# [C언어-막코딩] 15장 반복문(FOR문) ----- - 다운 사이트 : https://sourceforge.net/projects/orwelldevcpp/ - 웹컴파일러 : https://www.tutorialspoint.com/compile_c_online.php ----- 지난 시간까지 해서 제어문의 IF문과 SWITCH-CASE문에 대해서 살펴 보았습니다. 오늘은 반복문 편에서 FOR문에 대해 알아보도록 하겠습니다. ## 1. FOR문 ----- <center>  </center> For문은 위 그림 처럼 고정 된 횟수 만큼 반복하는 명령문을 처리할 때 사용하는 문입니다. 가령, 1부터 10까지의 합을 구할 때 어떻게 하나요. sum = 1+2+3+4+5+6+7+8+9+10; 이렇게 순차적으로 1~10까지의 숫자를 더하게 됩니다. 자세히 보시면 숫자가 1씩 증가하죠. 10까지의 숫자가 10개이고 1씩 증가한 특징을 보이고 있죠. 규칙적인 숫자가 10번 반복되 이 수식을 반복문이라는 For문을 이용하여 코딩으로 표현을 할 수 있습니다. 다음 표현은 기본 For문의 구조입니다. <center>  </center> for문은 초기식, 조건식, 증감식으로 3항으로 나뉘어 있습니다. - 초기식은 for문이 반복 할 변수의 초기값을 지정합니다. (i=0) - 조건식은 반복 변수의 조건식이 참인지 체크합니다. (i<=10) - 증감식은 반복 변수가 증가하는지 감소하는지 지정하는 문입니다.(i++) 여기서, 조건식이 참일 때는 for문은 무한 반복하고 조건식이 거짓일 때 for문을 빠져 나오게 됩니다. 증감식에서는 i++ 하면 1씩 증가하고 i+=2 하면 2씩 증가합니다. i-- 하면 1씩 감소하겠죠. 추가로, for문은 한개만 사용할 수 도 있지만 2중 for문, 3중 for문으로 다중 for문으로 묶어서 사용 할 수 도 있습니다. 나중에 배열변수에서 배우겠지만 간단히 용어적으로 1 중 for문은 선형 1차 표현이고, 2중 for문은 평면 2차 표현이고, 3중 for문은 공간 3차 표현입니다. 배열 때 다시 이야기 하겠지만 여기에서는 그냥 for문은 한개만 쓸 수도 있고 다중 for문을 사용 할 수 도 있다는 점만 기억하시면 됩니다. 아래와 같이 2중 for문으로도 표현 할 수 있습니다. <center>  </center> 위 한개의 for문과 동일한 동작 sum값을 갖습니다. sum값은 위에서 1개 for문에서 1~99까지의 합이고 여기에서도 2중 for문을 사용했지만 sum값은 1~99까지의 합을 구하는 표현입니다. 메모장으로 한번 for문의 순차적 반목 sum식을 써서 그 느낌을 이해하시기 바랍니ㅏㄷ. ## 2. 코딩 ----- 위 for문의 표현과 예를 실제 코딩해서 실행 결과를 살펴 봐야겠죠. 그냥 이렇게 구한다라고 하면 잘 이해가 안갈 수 있으니 실행 결과를 보시고 for문이 어떻게 돌아가는지 이해하시기 바랍니다. **[소스]** ``` #include <stdio.h> int main(int argc, char *argv[]) { int i,j; int sum=0; for(i=0;i<=10;i++){ sum=sum+i; printf("sum = %d , i = %d \n",sum,i); } return 0; } ``` **[결과]**  결과를 보시면 어떤 느낌인지 아시겠지요. 추가로 위 예제에서 1~99까지를 for문 한개를 쓴거라 2중 for문을 쓴거로 sum 값을 한번 구해 볼까요. **[소스]** ``` #include <stdio.h> int main(int argc, char *argv[]) { int i,j; int sum=0; for(i=0;i<100;i++){ sum=sum+i; } printf("1중 For문 : sum=%d \n",sum); sum=0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ sum=sum+i*10+j; } } printf("2중 For문 : sum=%d \n",sum); return 0; } ``` **[결과]**  결과는 정상적으로 나왔는데 한번 여러분들은 3중 for문으로 구해 보세요. ## 마무리 ----- For문에 대해 오늘 다뤘습니다. For문의 단골 예제로는 구구단 만들기랑 별표(\*) 출력하는 예제가 있는데 그건 구글 검색을 하시면 쉽게 예제를 찾을 수 있습니다. 예제를 먼저 찾기 전에 머리속으로 한번 구상해서 오늘 배운 For문으로 만들어 보세요. 그게 어렵다면 오늘 배운 내용은 0~10까지의 합이나 0~99까지의 합으로 자연수 합을 구하는 예제였다면 짝수의 합이나 홀수의 합으로 변형 시켜서 연습해보세요. 추가로 0~10까지의 합을 구하는 위 코딩을 반대로 10~0으로 역순으로 증가식으로 i++이 아닌 감소식으로 i--로 변형 시켜서 합을 구해 보세요. C언어는 다양한 관점으로 기존의 소스를 변형 시키거나 또는 구두단이나 별표 같은 응용력을 키워보시거나 새로운 뭔가를 For문을 이용한 창의력을 키우는 연습을 꾸준히 하셔야 합닏. 그래야 주변의 모든 상황을 코딩적 사고로 표현이 가능 해집니다. 한번 도전해보세요. --- ##### <sub> **Sponsored ( Powered by [dclick](https://www.dclick.io) )** </sub> [](https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6ImMtMTUtZm9yLTE1NTQ4NTQ2Mjg2MDUiLCJhIjpbImktMTk1Il0sInVybCI6Imh0dHBzOi8vd3d3LmRjbGljay5pby9tb25ldGl6ZSIsImlhdCI6MTU1NDg1NDYyOCwiZXhwIjoxODcwMjE0NjI4fQ.W_npBEq2RJPnfOwMYA7DEcCNWY_WJXNbRf1-uXvL_Es)