반복문 (Looping)
C
- C에서는
for
, while
, do-while
과 같은 구문을 사용하여 반복문을 작성합니다.
- C는 보통 더 낮은 수준의 메모리 제어가 가능하기 때문에, 반복문을 통한 최적화가 더 유연할 수 있습니다.
for(int i = 0; i < 5; i++) {
printf("%d ", i);
}
int i = 0;
while(i < 5) {
printf("%d ", i);
i++;
}
int i = 0;
do {
printf("%d ", i);
i++;
} while(i < 5);
Python
- Python에서는
for
와 while
을 사용하여 반복문을 작성할 수 있습니다.
- Python의
for
반복문은 C보다 더 고차원적인 작업을 수행할 수 있습니다. 예를 들어, 리스트나 딕셔너리 같은 복잡한 자료구조를 쉽게 순회할 수 있습니다.
for i in range(5):
print(i, end=' ')
i = 0
while i < 5:
print(i, end=' ')
i += 1
재귀 함수 (Recursion)
C
- C에서는 함수 내부에서 자기 자신을 호출하여 재귀 함수를 구현할 수 있습니다.
- 탈출 조건을 명시적으로 정의해야 합니다.
- 스택 오버플로우의 위험이 있습니다.
int factorial(int n) {
if (n == 0) return 1;
return n * factorial(n - 1);
}
Python
- Python에서도 함수 내부에서 자기 자신을 호출하여 재귀 함수를 구현할 수 있습니다.
- 탈출 조건을 명시적으로 정의해야 하며, Python도 스택 오버플로우의 위험이 있습니다.
- 데코레이터를 사용하여 메모이제이션을 쉽게 구현할 수 있습니다.
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
요약
- C와 Python 모두 반복문과 재귀 함수를 지원하지만, 사용하는 문법과 가능한 작업의 범위에 차이가 있습니다.
- Python은 더 높은 수준의 추상화와 편의성을 제공하지만, C는 더 낮은 수준의 메모리 제어와 최적화가 가능합니다.