c언어 -반복문 (for)

2022. 3. 23. 16:36C언어

728x90

for문은 미쳤다. 그냥 앞으로 매일 나온다고 보면 된다. 

for문을 제대로 공부 안 하면 인공지능, 빅데이터, 알고리즘 등등을 하는 데 있어서 문제가 많다. 

그렇기 때문에 한번 할때 제대로 해놓자!

 

반복문은 비슷한 명령들을 여러 번 실행하는 제어 구조이다. 컴퓨터가 처리하는 데이터가 원래 반복적인 성격을 가지고 있기 때문에 반복문은 아주 많이 사용된다. 사실 컴퓨터가 제일 잘하는 일이 아무 생각 없이 주어진 명령을 계속 반복해 대는 것이다. 생각이 없다 보니 속도도 빠르고 같은 일을 계속 시켜도 불평이 없다. 

 

1번 학생부터 100번 학생까지 총점과 평균을 구하는 프로그램을 작성해야 한다면 지금의 우리의 수준으로는 100번 scanf를 받고 100번 계산을 일일이 해줘야 된다. 그러나 이제는 반복문의 범위를 제어해줌으로 써 반복행동을 간편하게 할 수 있다. 

 

for(초기식; 조건식; 증감식){조건식이 참일때 명령문}

 

- 초기식 : 반복문은 보통 특정 변수가 일정한 범위에 있는 동안에 실행된다. 이때 반복문을 통제하는 변수를 제어 변수라고 한다. 초기식은 제어 변수의 초기값을 지정하며 루프가 시작될 때 한 번만 수행된다. 보통 0부터 99까지 100번도는 for문이라고 할 때 i=0; 을 초기식으로 많이 해준다. 초기식은 for문안에서만 그 실효성이 인정된다. 

 

- 조건식 : 반복문이 언제까지 실행될 것인가를 지정하며 이 조건이 참인동안 계속 루프를 돈다. 루프 실행을 계속할 조건이므로 조건이 거짓이 되면 루프를 탈출한다. 조건을 나타내므로 위에 100번도는 식을 예로 들면 i <100와 같은 제어 변수에 대한 비교 연산문이 온다. 

 

- 증감식 : 한 번 루프를 돌 때 제어 변수를 얼마나 증감시킬 것인가를 지정한다. i=i+1;(i++)과 같이 제어 변수의 값을 변화시키는 연산 문이 온다. 루프가 한번 실행될 때 증감식도 한 번 실행된다. 

 

정리 : for문을 돌기 위해 몇 번 돌아야 될지 생각을 하고 초기식을 정해둔다. 예를 들어서 100번 돌아야겠는 걸? int i=0으로 i를 선언한다. 그리고 조건식에 i <100;으로 둔다. 그리고 증감식에 i++하면 100번 반복하게 된다. 만약 i=i+2 하면 50번 밖에 못 돌겠죠? 

 

그리고 저는 for문안에다가 int i=0 했는데 이거는 사람 취향입니다. 

밑에 예제를 보면 밖에다가 i를 선언해주고  for문에다가 사용했는데 이렇게 해도 되는데 저는 i라는 변수는 다른 반복 문안에서도 쓰고 싶어서 다른 반복문에다가도 i를 쓰면 초기화를 해줘야 해서, 귀찮고 헷갈려서 for문을 만들 때 초기식으로는 항상 초기화가 아닌 선언을 해줍니다. 

int i;
for(i=0; i<100; i++){
	printf("%d번째\n",i+1);
}

 

 

for문에 대한 도식화는 대충 이렇습니다.  (디버깅하면서 이해해보자)

 

https://www.acmicpc.net/problem/10950

 

10950번: A+B - 3

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

이문제를 풀어보면서 알고리즘문제를 푸는데 많이 얻어가자.  

728x90

'C언어' 카테고리의 다른 글

c언어-(for문)  (0) 2022.03.28
c언어 - 반복문(while, 제어문, do whlie)  (0) 2022.03.23
c언어 - 조건문(if , else, else if)  (0) 2022.03.23
c언어-(if 조건문)  (0) 2022.03.17
c언어-(문자열 string, 배열)  (0) 2022.03.17