Blue_bull 2024. 12. 26. 23:30

Java 반복문 및 전위/후위 증감자 정리 (확장 for문 포함)


1. 반복문 종류

Java에서 사용 가능한 반복문:

  1. for 구문
    • 기본 for문
    • 확장 for문 (Enhanced for loop)
  2. while 구문
  3. do-while 구문

1.1 for 구문

  • 형식:

    for (초기화; 조건식; 증감식) {
        // 반복 실행할 코드
    }
  • 예제:

    for (int i = 0; i < 5; i++) {
        System.out.println("i: " + i);
    }

1.2 확장 for문 (Enhanced for loop)

  • 컬렉션 또는 배열의 모든 요소를 순회할 때 사용합니다.

  • 형식:

    for (자료형 변수 : 배열/컬렉션) {
        // 반복 실행할 코드
    }
  • 예제 (배열 순회):

    int[] numbers = {1, 2, 3, 4, 5};
    
    for (int num : numbers) {
        System.out.println("num: " + num);
    }
  • 예제 (컬렉션 순회):

    import java.util.ArrayList;
    
    public class EnhancedForLoopExample {
        public static void main(String[] args) {
            ArrayList<String> fruits = new ArrayList<>();
            fruits.add("Apple");
            fruits.add("Banana");
            fruits.add("Cherry");
    
            for (String fruit : fruits) {
                System.out.println(fruit);
            }
        }
    }
  • 특징:

    • 읽기 전용으로 배열/컬렉션의 값을 수정하려면 일반 for문을 사용해야 합니다.

1.3 while 구문

  • 조건이 참(true)일 때 반복합니다.

  • 형식:

    while (조건식) {
        // 반복 실행할 코드
    }
  • 예제:

    int i = 0;
    while (i < 5) {
        System.out.println("i: " + i);
        i++; // 증감 필요
    }

1.4 do-while 구문

  • 최소 한 번 실행 후 조건을 평가합니다.

  • 형식:

    do {
        // 반복 실행할 코드
    } while (조건식);
  • 예제:

    int i = 0;
    do {
        System.out.println("i: " + i);
        i++;
    } while (i < 5);

2. 전위 증감자와 후위 증감자 차이

2.1 전위 증감자 (++x, --x)

  • 값을 먼저 증가/감소시키고 나서 사용합니다.

2.2 후위 증감자 (x++, x--)

  • 값을 먼저 사용하고 나서 증가/감소가 이루어집니다.

3. 반복문에서 전위/후위 증감자 비교

3.1 for 반복문

  • 전위 증감자:
    for (int i = 0; i < 5; ++i) {
        System.out.println("i: " + i);
    }
  • 후위 증감자:
    for (int i = 0; i < 5; i++) {
        System.out.println("i: " + i);
    }
  • 결과:
    • 전위와 후위 증감자는 for문에서는 실행 결과가 동일합니다.
      (증감이 반복문 끝에서 수행되기 때문)

3.2 while 반복문

  • 전위 증감자:

    int i = 0;
    while (++i < 5) { // 증가된 i 값으로 조건 확인
        System.out.println("i: " + i); // 출력: 1, 2, 3, 4
    }
  • 후위 증감자:

    int i = 0;
    while (i++ < 5) { // i 값으로 조건 확인 후 증가
        System.out.println("i: " + i); // 출력: 1, 2, 3, 4, 5
    }
  • 결과 차이:

    • 전위 증감자: 출력값은 1 ~ 4.
    • 후위 증감자: 출력값은 1 ~ 5.

3.3 do-while 반복문

  • 전위 증감자:

    int i = 0;
    do {
        System.out.println("i: " + i);
    } while (++i < 5); // 증가 후 조건 확인
  • 후위 증감자:

    int i = 0;
    do {
        System.out.println("i: " + i);
    } while (i++ < 5); // 조건 확인 후 증가
  • 결과 차이:

    • 전위 증감자: 출력값은 0 ~ 4.
    • 후위 증감자: 출력값은 0 ~ 5.

4. 확장 for문과 증감자

확장 for문은 배열/컬렉션을 순회하는 데 특화되어 있으며, 증감자가 포함되지 않습니다. 내부적으로 반복 인덱스가 관리됩니다.

  • 예제:

    int[] numbers = {1, 2, 3, 4, 5};
    
    for (int num : numbers) {
        System.out.println("num: " + num); // 1, 2, 3, 4, 5 출력
    }
  • 특징:

    • 배열 또는 컬렉션의 모든 요소를 자동으로 순회.
    • 배열의 값을 수정하려면 일반 for문을 사용해야 함.

5. 전체 비교

반복문 유형 전위 증감자 (++x) 후위 증감자 (x++)
for 반복문의 끝에서 증가 후 조건 확인 반복문의 끝에서 증가 후 조건 확인
while 증가 후 조건 확인 조건 확인 후 증가
do-while 증가 후 조건 확인 조건 확인 후 증가
확장 for문 증감자가 포함되지 않음 증감자가 포함되지 않음

6. 요약

  1. for문:
    • 반복 횟수를 정확히 알고 있을 때 사용.
    • 전위/후위 증감자는 실행 결과가 동일.
  2. 확장 for문:
    • 배열이나 컬렉션을 순회할 때 사용.
    • 증감자가 포함되지 않음.
  3. while문:
    • 전위/후위 증감자에 따라 조건 평가 순서가 달라질 수 있음.
  4. do-while문:
    • 최소 한 번 실행 후 조건을 평가.