본문 바로가기
프로그래밍 언어/C언어

[혼자 공부하는 C언어] - Chapter 06 정리 및 문제 해결

by amobu0 2024. 6. 19.
혼자 공부하는 C언어 책 정리 및 발생하는 트러블 슈팅 해결

Chapter 06 반복문

학습목표 

  • 단순 반복 작업을 쉽게 처리하도록 도와주는 while문, for문 do ~ while문에 관해 알자보자
  • 반복문을 중첩하는 방법을 알자보자
  • 실행 방식을 바꿔 주는 break와 continue에 관해 알아보자

6-1 while문, for문, do ~ while문

while문은 조건식을 먼저 검사하고 조건식이 참인 동안 실행문을 반복한다. while문의 조건식을 만족하지 못하면 다음 실행 위치는 반복문 이후의 문장이다.

 

for문은 while문과 비슷한 반복문이다. 다만, for문은 실행문을 원하는 횟수만큼 반복할 때 사용한다. for문은 초기식, 조건식, 증감식으로 반복 횟수를 제어하며 블록 안의 문장을 반복한다.

 

 while문, for문은 조건식을 먼저 확인하는 반면, do ~ while문은 일단 반복할 문장을 수행한 후에 조건을 검사한다. 즉, 조건식과 관계없이 반복할 문장을 최소 한 번은 실행한다. while문은 조건을 만족해야지 실행하므로 조건식이 거짓이면 실행문을 한 번도 실행하지 않고 바로 반복문을 빠져나간다. 반면, do ~ while문은 실행문이 조건식 앞에 있으므로 조건과 관계없이 실행문을 최소한 한 번은 실행한다. do ~ while문 마지막에 붙어 있는 세미콜론(;)을 반드시 기억하자. 세미콜론을 빠뜨렸는데 인지 못하고 에러를 잡기 위해 엄한 곳을 들여다 보는 경우가 꽤 발생한다. 

핵심포인트

  1. while문은 반복 문장을 실행하기 전에 반복 조건을 먼저 검사한다.
  2. for문은 반복 횟수가 정해진 경우에 사용한다.
  3. do ~ while문은 반복 문장을 실행한 후 에 반복 조건을 검사한다.

3가지 반복문

반복문 형식 실행 방식
while (조건식)
{
    실행문;
}
조건식이 참인 동안 실행문을 반복한다.
최초 조건식이 거짓이면
실행문은 한 번도 실행되지 않는다.
for (초기식; 조건식; 증감식)
{
    실행문;
}
초기식은 최초 한 번 실행된다.
조건식을 검사해 참이면
실행문 > 증감식 > 조건식을 반복한다.
do
{
    실행문;
} while (조건식);
실행문을 수행한 후 조건을 검사한다.
조건식이 참인 동안 실행문을 반복한다.
실행문은 조건식과 관계없이 최소 한 번은 실행된다.
마지막에 붙어 있는 세미콜론(;)을 반드시 기억하자.

6-2 반복문 활용

중첩 반복문은 구구단 예제를 활용하여 넘어감.

break는 반복문 안에서 반복을 즉시 끝낼 때 시용한다. 모든 반복문은 조건식이 거짓일 때 반복이 끝난다. 따라서 반복문 처음에 조건식이 있는 while문이나 for문은 반복문 위에서 반복이 끝나고 마지막에 조건식이 있는 do ~ while문은 반복문 밑에서 반복이 끝난다. 그런데 예외적으로 반복문 중간에서 임의로 반복을 끝내고 싶을 때는 break를 사용한다.

 

break를 사용할 때는 주의할 점이있다. break는 자신을 포함하는 반복문 하나만 벗어난다. 반복문이 중첩된 경우 가장 안쪽에서 break를 사용해 모든 반복문을 한 번에 벗어날 수 없다. 또한 반복문 이외의 블록에서 사용하면 그 블록을 포함한 반복문을 벗어난다. 예를 들어 반복문 안에 있는 if문 블록에서 break를 사용하면 if문 블록을 포함한 반복문을 벗어난다.

 

continue는 반복문의 일부를 건너뛴다. 반복문 안에서 continue를 사용하면 다음 실행 위치가 반복문의 블록 끝이 된다. 블록을 탈출하는 것이 아니다. 조건에 따라서 반복문의 일부를 제외하고 반복할 수 있다.

핵심포인트

  1. 중첩 반복문은 반복문의 실행문을 반복문으로 사용한다.
  2. breakcontinue를 사용하면 반복문의 실행 방식을 바꿀 수 있다.

중첩 반복문과 분기문

중첩 반복문 예 for (i = 1; i < 10; i++)
{
     for(j = 0; j < 10; j++)
    {
          반복할 문장;
    }
}
i-for문이 10번 반복되고

j-for문이 10번 반복므로

반복할 문장은 100번 반복
분기문 사용 예 while (1)
{
    if (조건식1) break;
    if (조건식2) continue;
    반복할 문장;
}
조건식 1이 참이면 반복문이 끝난다.

조선식 2가 참이면 반복할 문장을 건너뛰고 처음부터 다시 반복한다.

목표 지점까지 2/3왔다!!

https://m.hanbit.co.kr/store/books/book_view.html?p_code=B3773573071

 

혼자 공부하는 C 언어(개정판)

혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서

m.hanbit.co.kr