c for

떵떵·2022년 6월 13일
0

단순 반복을 할 때 일일이 코딩하기엔 비효율적이고 정적이다.
반복문 for을 쓰면 자동으로 워하는 횟수만큼 반복할 수 있다.

for (초기식; 조건식; 변화식) -> 루프 선언문(loop statement)
{
반복할 코드 -> 루프 본체(loop body)
}

동작과정

  1. 초기식 선언
  2. 조건식 판별, 참-> 3번, 거짓 -> 종료(다음코드)
  3. 루프 본체 실행
  4. 변화식 실행 -> 2번으로

이렇게 2번 -> 3번 -> 4번을 루프 돌면서 변화식으로 인해 조건식이 거짓이 될때까지 수행한다.
여기서 중요한건 초기식은 동작과정 중 한 번 수행되지만 조건식은 반복횟수마다 판별한다.

!문제!
만약 조건식에 strlen(arr)같은 함수를 넣는다면 조건식 판별을 할 때마다 조건식 안에 있는 함수를 실행해야 하기 때문에 속도에 지장을 줄 수있다.

!해결법!
이것의 해결법으로 for문 전 함수 결과값을 변수에 넣고 조건식에 사용하는 것이 있다.

for 주의사항

  • for 반복문도 if문과 마찬가지로 끝에 ;을 붙이면 안된다.

루프 선언문 뒤에 세미콜론(;)을 붙이고 그 후 루프 본체를 작성시, 실제 작동할 때는 세미콜론 이후 루프 본체는 for문에서 분리되어 따로 보기 때문이다.

  • 중괄호({}) 생략은 안된다.

if문 처럼 반복할 코드가 1줄 이하이면 가능하지만 2줄 이상부터 for문과 분리하여 보기 때문에 반복하지 않는다.

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

이처럼 한줄이면 100번 반복하고 printf문 이후부턴 for문에 적용되지 않는다.

  • 초기식 생략

for반복문에 사용할 초기값이 준비되어 있으면 초기식에서 초기값을 설정할 필요가 없기 때문에 비울 수 있다.

int i = 0;
for (; i<100; i++)
{
}

이 방식을 입력받은 변수로도 사용가능하다.

for문 변수 두 개 사용

int main()
{
	for (int i=0, j=0; i < 10; i++, j+=2)
    {
    	printf("i : %d, j: %d\n", i, j);
    }
}

초기식에서 두 변수를 선언 후 조건식에선 둘 중 하나로 조건 정하고 변화식에서 원하는대로 증가시킬 수 있다.

위 코드는 i++로 1씩, j+=2로 2씩 증가시켰다.

0개의 댓글