2025. 3. 28. 03:51ㆍC_Programming

안녕하세요!
다시 돌아왔습니다..
여태까지 Visual Studio의 기초, printf, scanf, if문 등.. 생각보다 많은 것들을 배웠는데요.
지난번 조건문에 이어 이번 글에서는 '반복문'에 대해서 알아보도록 하겠습니다.
반복문의 종류에는 크게 while문과 for문으로 나뉘는데요. 오늘은 for문만 간단하게 배워봅시다.
프로그램에서 되풀이되는 과정은 늘 있기 마련인데, 이럴 때 두루두루 유용하게 사용할 수 있는 것이 바로 반복문입니다.
반복문의 필요성
반복문의 필요성에 관련해서는 많은 얘기를 할 수 있겠지만, 간단하게 한 가지만 예시로 들어보겠습니다.
오늘 날짜가 2025년 3월 28일인데요.
제가 만약 '2025.03.28' 이라는 문장을 딱 8번만 출력하고 싶어한다고 가정합시다.
그러면 printf만 무작정 8번 사용을 해야할까요??
저는 너무 비효율적이라고 생각이 드네요. 이런 상황에서 사용하는 것이 반복문입니다.
코드를 간단하게 짜볼까요?
반복문은 이런 형식으로 작성합니다.
for(A;B;C) { }
A를 첫 번째 칸, B를 두 번째 칸, C를 세 번째 칸 이라 설정하고 설명해보겠습니다.
A, 즉, 첫 번째 칸에서는 사용할 변수를 지정해줘야 합니다. 위에서는 정수 i에 1을 저장했네요.
두 번째 칸에서는 반복할 횟수를 정해줘야합니다. i <= 8이니까 i가 8이하일 때까지만 반복하겠다는 의미입니다.
마지막 세 번째 칸은 i++이라고 써있는게 보이시나요?
i++은 단순히 해석하자면 i의 값에 1씩 더해나가겠다는 의미입니다.
의미가 단순한 만큼 여러 방법으로도 표현 가능합니다.
i++, i = i + 1 , i += 1 은 모두 i에 1씩 더해나가겠다는 의미로, 같은 표현이기 때문에 아무거나 골라서 사용하셔도 무방합니다.
그럼 이제 실행시켜볼까요?
원하는 대로 딱 8번만 출력이 된 것을 확인할 수 있습니다!
음..그러면 한 번 for(A;B;C) 안의 A B C 부분을 지워 for(;;)형태로 수정한 뒤에 다시 실행해 볼까요??
네... 많이 놀라셨을 거라 생각합니다ㅋㅋ..
for문 안에 반복을 언제까지 할지 등의 조건이 모두 사라지니까 무한 반복(infinite loop)을 하게 되네요.
그러니까 꼭 변수와 조건을 잘 지정해줘야 합니다!!
for 반복문 응용
그러면 이제 본격적으로 배운 것을 응용해볼까요?
처음에는 좀 간단하게, '1부터 1000까지의 정수 중에 3의 배수만 출력' 하는 코드를 작성해보세요!
저는 이렇게 코드를 작성했답니다.
for문의 첫 번째 칸에서 i = 1이라는 정수를 지정해주고, 조건은 i가 1000 이하일 때 참, 그리고 i를 1씩 더해나가도록 작성했습니다.
근데 이렇게만 하면 i의 값이 1에서 1000까지 모두 출력되겠죠.. 그래서 for 문 안에 if문으로 추가 조건을 넣어줘야해요!
(i % 3) == 0, 혹시 % 기억나시나요? 첫 번째 글에서 언급했었는데,, 나머지라는 의미였어요.
그래서 if((i % 3) == 0) 은 '3으로 나눈 나머지가 0이면', 즉, '3의 배수이면' 이란 뜻이 되겠죠?
코드가 모두 이해되었으면 실행시켜봅시다.
실행시키니까 1부터 1000사이의 3의 배수들이 모두 출력되는 것을 확인할 수 있었습니다.
좀 더 어려운 문제로 나아가볼까요?
1년부터 2100년까지 윤년이 총 몇 번 있었는지 '횟수'를 구하는 코드를 짜봅시다!
여태 글에서 작성했던 내용을 짜집기하면 충분히 만들 수 있습니다.
윤년의 조건에 대해서 먼저 얘기하고 가자면, 윤년의 조건은
'4의 배수이면서 100의 배수는 아니거나', '400의 배수'인 연도라고 합니다.
그래서 그 조건을 그대로 위에 if문으로 적어놓은 게 보이시죠?
cnt는 그냥 변수를 지정해준 겁니다. 이제 윤년의 횟수를 cnt로 카운트하겠다는 의미죠.
i가 if문의 조건에 부합할 때마다 cnt의 값이 1씩 올라야해서 cnt++를 사용했습니다.
아까 위에서 말했듯이 cnt++ 대신 cnt = cnt + 1이나 cnt += 1을 사용해도 괜찮습니다.
그럼 실행시켜볼까요?
2100년까지 윤년은 총 509번 있나 봅니다.
이렇게 for문과 if문을 적절하게 섞어서 사용하면 다양한 코드들을 작성할 수 있습니다.
이번 글은 for문에 대해서만 다뤄서 분량이 저번에 비해 많지는 않았지만, 그래도 배운 중요도로 따지면 전혀 부족할 게 없는 파트라 생각이 드네요. 다음 글에서 뵙겠습니다!

'C_Programming' 카테고리의 다른 글
25학번과 함께 배우는 C언어 프로그래밍(2) - 조건문 (0) | 2025.03.28 |
---|---|
25학번과 함께 배우는 C언어 프로그래밍(1) - Visual Studio 설치와 실행, 프로젝트 만들기, 주석, 변수, printf와 scanf (0) | 2025.03.28 |