C언어) 13. C언어 반복하는 for문. while과 for의 차이
for문 이란?
C언어의 반복문 중의 하나.
앞서 배운 while문의 간결한 버전(?) 이다.
형식
[for (초기식; 조건식; 증감식)] |
*초기식: 자료형, 변수, 변수값 선언 ex) int i = 0
*조건식: while문에서 조건에 썼던것. ex) i <= 10
*증감식: 후위/전위 증감 연산자 ex) i++
for과 while의 차이
반복을 하는 함수는 while과 for가 있다.
둘의 차이점을 살펴보면
while: 변수선언X, 반복 횟수 선언X
for: 변수선언O, 반복 횟수 선언O
while문은 보통 얼마나 반복하게 될지 잘 모를때 사용하고,
for문은 반복횟수를 지정하고, 증가수가 일정할때 사용한다.
(실제로는 for를 훨씬 더 많이쓰는 편)
또한 둘다 무한반복이 필요할 경우,
while(1), for(;;)이렇게 표기방식이 다르다.
for과 while비교
아래 같은 결과를 for과 while로 작성해보자.
while문
변수i가 1부터 시작해서 조건(i<5)와 후휘증감(i++)로 인해
총 4번 반복한다.
for문
같은조건을 for문 안에 다같이 씀으로 인해
코드가 보이게 간결해졌다.
예제)
n의 숫자를 입력받고 1부터 n까지 중에 2의 배수를 출력하시오. |
문제해결방안)
①2의 배수는 2로 나눴을 때 나머지가 0이다.
=> i % 2 == 0
②입력받을 변수 n과 하나씩 늘어갈 변수 i가 필요하다.
③입력받은 숫자n까지만 반복해야 한다.
=> i <= n
<한줄한줄 살펴보기>
3번줄: 입력받을 변수n 선언
4번줄: 입력 받도록 scnaf함수 사용
5번줄: 편하게 보도록 2의 배수라는 문구 출력
6번줄: for문 안에서의 변수i선언, 조건선언, 후휘증가선언.
=> 후위 증가 선언으로 인해 i는 +1씩 증가하여
1부터 2, 3, 4,....n까지 증가한다.
7번: 1씩 증가하는 i를 2로 나누어 나머지가 0일 경우에만
걸러지도록 if문을 사용한다.
8번: 7번에서 걸러진 2의 배수들을 출력.
for문은 한 줄에 입력하는 조건들이 많아서
처음할때는 매우 복잡할 수 있다.
하지만 익숙해지면 매우 간편한 명령어이니,
동작과정을 완벽히 이해하는 것이 중요하다.
도움이 되었다면 [하트] 부탁합니다~