이제 마지막으로 for 반복문에 대해 배워보겠습니다.
기능은 while문과 같습니다.
for 반복문
for문의 기본적인 형태를 먼저 보여드리겠습니다.
형태 | 설명 |
for (A; B; C) { 종속절; } |
A: 초기식 B: 조건식 C: 변화식 초기식을 가지고 조건식을 비교하고 맞으면 종속절 실행 그리고 변화식을 거쳐 다시 조건식과 비교한다. 순서 A -> B -> 참 -> 종속절 -> C -> B -> 참 -> 종속절 -> C -> B -> 참 -> 종속절 -> C ...... -> B -> 거짓 -> for문 나옴. |
ex) for (int i = 0; i< 5; i++) { printf("i 값: %d \n", i); } |
A에 변수 선언과 동시에 값 지정. B에 조건식 C에 변화식 |
for (;;) { 종속절; } |
무한 루프가 일어남. |
for i in range() 를 써서 반복하는 파이썬의 for 문하고는 좀 다른 모습입니다.
이것도 처음에는 형식이 어려울 수 있는데 하나하나 맞춰서 쓰다보면은 이해가 쉬울 것입니다.
우선 ex)에 써있는 코드를 이제 저번에 배웠던 while문의 ex) 코드와 비교하면서 봐보겠습니다.
먼저 while 문 코드를 봐보겠습니다.
#include <stdio.h>
int main()
{
int i = 0;
while (i < 5)
{
printf("i 값: %d \n", i);
i++;
}
return 0;
}
이게 while문 코드입니다. 이제 여기에 있는 초기식, 조건식, 변화식을 for문에 맞춰 바꾸어 보겠습니다.
#include <stdio.h>
int main()
{
for (int i = 0; i < 5; i++)
{
printf("i 값: %d \n", i);
}
}
그러면 위와 같은 코드가 나옵니다.
이제 실행해 보겠습니다.
그러면 저번과 결과가 같게 나온 것을 확인 할 수 있습니다.
이처럼 while 문과 for문은 그 형태만 다를 뿐 기능은 같다는 것을 알 수 있었습니다.
이 for 문은 중첩해서 사용하기도 합니다.
중첩 for 반복문
형태는 우선 다음과 같습니다.
형태 |
for (A; B; C) { for(A; B; C) { 종속절; } 종속절; } |
보게 되면 중첩이라는 말처럼 for문 안에 for문이 들어간 느낌입니다.
만약 바깥 쪽의 for문이 2번 반복하고 안 쪽의 for문이 3번 반복한다고 한다면, 결과적으로 안쪽의 for문은 6번 반복하게 되는 것입니다.
이를 이용해 간단한 활용을 해보겠습니다.
* 피라미드 만들기
코딩을 하면서 나오는 문제중에 하나인데 중첩 for 반복문을 사용하여 풀 수 있습니다
우선 코드는 다음과 같습니다.
#include <stdio.h>
int main()
{
for (int i = 1; i < 11; i++)
{
for (int j = 10; j > i; j--)
{
printf(" ");
}
for (int j = 0; j < i * 2 - 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
아마 처음 보게 되면 좀 어려우실 수도 있을 것 같습니다.
하나하나 따라가 보거나 아니면 직접 만들어 보시는 것이 이해하기 더 쉬울 것입니다.
그럼 결과를 한번 봐보겠습니다.
피라미드가 만들어졌습니다.
오늘은 반복문을 다 배우고 중첩 for 반복문까지 알아보았습니다.
아마 많이 사용하시다 보면 더 이해 하기 쉬워질 것이라고 생각합니다.
댓글