for문과 while문의 차이

D3F D3V J30N·2024년 8월 10일

Java

목록 보기
6/11
post-thumbnail

for문과 while문의 차이

1. 기본 구조

for문

for (초기화; 조건; 증감) {
    // 반복할 코드
}

while문

while (조건) {
    // 반복할 코드
}

2. 사용 목적

  • for문: 반복 횟수를 정확히 알 때 사용한다.
    예: 배열 순회, 1부터 100까지 더하기

  • while문: 조건이 만족될 때까지 반복할 때 사용한다.
    예: 사용자가 'q' 입력할 때까지 입력 받기, 파일 끝까지 읽기

3. 초기화, 조건, 증감의 위치

  • for문: 이 세 가지가 모두 한 줄에 있다.
  • while문: 조건만 괄호 안에 있고, 초기화는 보통 while문 전에, 증감은 while문 안에 따로 쓴다.

4. 가독성과 간결성

  • for문: 구조화된 반복에 적합. 배열이나 컬렉션 순회 시 깔끔하다.
  • while문: 더 유연한 반복 구조. 복잡한 조건에 따른 반복에 유용하다.

5. 무한 루프 표현

  • while문: while(true) - 매우 직관적
  • for문: for(;;) - 덜 직관적

6. 성능 차이

성능 차이는 거의 없다. 현대 컴파일러는 둘 다 비슷한 기계어 코드로 최적화한다.

7. 실제 사용 예

import java.util.Scanner;

public class DetailedLoopComparison {
  public static void main(String[] args) {
    // 1. for문 예제: 1부터 5까지의 합 구하기
    int sum1 = 0;
    for (int i = 1; i <= 5; i++) {
      sum1 += i;
      System.out.println("for문: 현재 i = " + i + ", 합계 = " + sum1);
    }
    System.out.println("for문 최종 결과: " + sum1);

    // 2. while문으로 같은 작업 하기
    int sum2 = 0;
    int j = 1;
    while (j <= 5) {
      sum2 += j;
      System.out.println("while문: 현재 j = " + j + ", 합계 = " + sum2);
      j++;
    }
    System.out.println("while문 최종 결과: " + sum2);

    // 3. while문의 유연성을 보여주는 예제: 사용자 입력 받기
    Scanner scanner = new Scanner(System.in);
    String input = "";
    while (!input.equals("q")) {
      System.out.print("문자를 입력하세요 (종료: q): ");
      input = scanner.nextLine();
      if (!input.equals("q")) {
        System.out.println("입력한 문자: " + input);
      }
    }
    System.out.println("입력 종료!");

    scanner.close();
  }
}

코드 분석

  1. for문 예제

    • 반복 횟수가 정확히 5번으로 정해져 있다.
    • 초기화, 조건, 증감이 for문 선언부에 한 번에 들어있다.
    • 코드 블록 안에는 실제로 수행할 작업만 있어서 깔끔하다.
  2. while문으로 같은 작업 하기

    • for문과 정확히 같은 일을 하지만, 구조가 다르다.
    • 초기화는 while문 전에 해야 한다.
    • 조건만 while 괄호 안에 들어간다.
    • 증감은 while문 코드 블록 안에 직접 써야 한다.
  3. while문의 유연성을 보여주는 예제

    • 사용자가 'q'를 입력할 때까지 계속 입력을 받는다.
    • 반복 횟수를 미리 알 수 없어서 while문이 더 적합하다.
    • 조건이 복잡한 형태여도 쉽게 처리할 수 있다.

결론

  • for문은 반복 횟수가 정해져 있고 규칙적인 증감이 있을 때 쓰면 좋다.
  • while문은 반복 횟수를 모르거나 복잡한 조건에 따라 반복해야 할 때 쓰면 좋다.
  • 둘 다 같은 일을 할 수 있지만, 상황에 따라 더 적합한 걸 골라 쓰면 코드가 더 읽기 쉬워진다.

이렇게 자세하게 설명하면, for문과 while문의 차이점을 확실히 이해할 수 있을 거다. 실제로 코딩할 때 이 차이를 생각하면서 상황에 맞는 반복문을 골라 쓰면 된다.

profile
Problem Solver

0개의 댓글