IT 여러가지

IT: for Loop vs while Loop

dewstream 2025. 7. 13. 08:00
728x90

※ IT: for Loop vs while Loop.
 
안녕하세요. 듀스트림입니다.
 
오늘 포스팅은 for문과 while문의 차이입니다.
 
예시에 사용된 언어는 C와 Python입니다.


for 루프 vs while 루프

구분forwhile
사용 의도“초기화 → 조건 → 증감” 또는 “컬렉션 순회”
반복 횟수나 대상이 명확할 때 유리
“조건이 참인 동안 계속”
반복 횟수를 알 수 없거나 조건으로 제어할 때 유리
조건 검사 시점루프 진입 전 조건 검사 → 조건이 처음부터 거짓이면 본문을 한 번도 실행하지 않음
장점C: 반복 변수 선언·증감이 헤더에 모여 가독성↑조건만 바꿔도 무한 루프·조기 종료 등을 표현하기 쉬움
Python: iterable 순회가 간결
언어별 특징C: 초기화·조건·증감을 헤더에 작성C: 증감·초깃값이 루프 외부에 존재
Python: 시퀀스·이터레이터를 직접 순회,
else 구문 사용 가능
Python: else 구문 사용 가능

for 루프 예시

C

#include <stdio.h>

int main(void) {
    /* 0~9까지 정확히 10회 반복 */
    for (int i = 0; i < 10; ++i) {
        printf("[for]  i = %d\n", i);
    }
    return 0;
}

 
Python

# iterable(시퀀스·이터레이터)을 직접 순회
names = ["kim", "lee", "park"]
for name in names:
    print(f"[for]  {name}")
# else 사용 예시
n = 17
for i in range(2, int(n ** 0.5) + 1):  # 2부터 n의 제곱근까지 반복
    if n % i == 0:  # 나누어떨어지면
        print(f"{n} = {i} * {n//i}")  # 나누어떨어지는 두 수 출력
        break  # 합성수이면 반복 종료 else는 실행되지 않음
else:  # break 없이 끝났을 때 실행
    print(f"{n} is prime")  # 소수일 경우

while 루프 예시

C

#include <stdio.h>

int main(void) {
    /* 예시1: 조건(i < 10)이 참인 동안 반복 */
    int j = 0;
    while (j < 10) {
        printf("[while] j = %d\n", j);
        
        /* 증감은 루프 본문에서 직접 수행 */
        j++;
    }

    /* 예시2: 입력이 음수이면 종료 */
    int n;
    printf("양수를 입력하세요 (음수면 종료): ");
    
    /* 조건 기반 */
    while (scanf("%d", &n) == 1 && n >= 0) {
        printf("입력한 값 = %d\n", n);
    }
    return 0;
}

 
Python

# 조건 기반 반복
names = ["kim", "lee", "park"]
count = 0
while count < len(names):
    print(f"[while] {names[count]}")
    count += 1
# else 사용 예시: 재시도 루프
attempt = 0
while attempt < 3:
    pwd = input("비밀번호 입력: ")
    if pwd == "secret":
        print("로그인 성공")
        break          # 성공 시 else 건너뜀
    attempt += 1
else:
    print("3회 실패 → 계정 잠금")

루프 선택 예시

시나리오추천 루프
반복 횟수를 알고 있거나 범위를 순회할 때for (예: for (i = 0; i < N; ++i))
컬렉션/리스트·딕셔너리 등을 순회할 때 (Python)for (for item in iterable:)
종료 조건이 이벤트·입력·센서 값처럼 동적일 때while
무한 루프 후 내부에서 break로 탈출할 때while (true) 또는 for(;;) (C) / while True: (Python)

요약

  • 두 루프는 기능적으로 동일(본문을 반복 실행)하지만 의도 표현과 가독성이 다릅니다.
  • C에서는 for가 초기화·조건·증감을 한눈에 보여 카운팅 루프에 유리하고, while은 조건만 두고 증감을 자유롭게 배치해 조건 루프에 유리합니다.
  • Python에서는 for가 iterable 순회에 최적화되어 있고, while은 조건 기반 반복이나 무한 루프에 주로 사용됩니다.
  • 표현하고 싶은 “멈춤 시점”이 명확하면 for 사용, 조건이 먼저고 횟수를 예측하기 어려우면 while을 사용하면 됩니다.

오늘은 여기까지~
 

728x90

'IT 여러가지' 카테고리의 다른 글

IT: DBA?  (1) 2025.09.13
IT: RDBMS 테이블 설계 체크리스트  (3) 2025.07.16
IT: RDBMS 스타스키마  (1) 2025.07.09
IT: RDBMS 반정규화  (2) 2025.07.08
IT: RDBMS 정규화  (2) 2025.07.07