6.8 for 루프 소개(For Loop)
Indefinite Loop vs Counting Loop
for문이나 while문은 위의 Indefinete Loop나 counting Loop를 다 구현할 수 있다.
다만, 두 루프를 구현하는 데 있어서, 어느 쪽이 더 적절한지에 따라 차이가 있다.
미리 말하자면 for문은 counting Loop가 표현하기 쉽고, while문은 indefinite Loop가 쉽다.
Counting 루프를 만들기 위해서는 3가지 조건이 필요하다.
옆에 적혀 있는 것들은 제가 제멋대로 해석한 거임.
- Counter initialization - 변수 초기화
반복을 통제하는 제어 변수를 초기화한다. 루프가 시작될 때 한 번만 수행한다. - Counter check - 조건 확인(검사)
루프를 실행할 조건을 지정한다. 이 조건이 참인 동안 루프는 지속된다. - Counter change 변수 변경
루프를 한 번 돌 때마다 제어 변수를 바꾼다.
예시를 통해 알아보자.
사실 우리는 일전에 while문을 통해 Counting Loop를 만든 적이 있다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 5;
while (i)
printf("%d is true \n", i--);
printf("%d is false\n", i);
}
(True & False 주소)
여기서 어디가 어느 조건인지 다 주석으로 달아두자면
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 5; // Counter initialization
while (i) // Counter check
printf("%d is true \n", i--); // Counter change
}
이런 식으로 되어있다.
while문만 배운 입장에서는 사실 깔끔하게 보일 수 있지만, 이것은 for문에 비하면 직관적이지는 않다.
for문으로 결과 값이 똑같도록 작성을 해보자면
#include <stdio.h>
int main()
{
for (int i = 5; i > 0; i--)
printf("%d is true \n", i);
}
이런 식이다.
for문은 ( ) 안에 3가지 조건이 다 들어가 있다.
i를 5로 초기화하고, i의 조건식 그리고 i의 증감여부까지 모두 다 ( ) 안에 있는 것이다.
한 번 둘의 차이 점을 알아보자.
둘 다 엄청난 차이가 있는 것은 아니다.
i ++;가 어느 위치에 있는 지에 차이가 있긴 하다.
출처: 홍정모의 따라배우는 C언어
강의 외의 추가된 것들은 책 그리고 인터넷 조사해서 얻었음
'배운 것들 메모 > 따라 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 6.11 콤마 연산자 (, Comma) (0) | 2024.10.11 |
---|---|
[홍정모의 따라하며 배우는 C언어] 6.10 비쥬얼 스튜디오 어셈블리 코드 확인법 (0) | 2024.10.11 |
[홍정모의 따라하며 배우는 C언어] 6.7 관계 연산자의 우선순위 (0) | 2024.10.11 |
[홍정모의 따라하며 배우는 C언어] 6.6 _Bool 자료형(Boolean Data Type) (0) | 2024.10.11 |
[홍정모의 따라하며 배우는 C언어] 6.5 사실과 거짓(True & False) (0) | 2024.09.26 |