자바의 코드 실행 흐름 제어 - 제어문의 이해

송선호·2024년 7월 7일
post-thumbnail

자바 프로그램은 main() 메소드의 시작 중괄호 "{" 에서 끝 중괄호 "}"까지 위에서부터 아래로 순차적으로 실행된다. 하지만 이러한 실행 흐름을 개발자가 원하는 대로 제어할 수 있는 기능이 필요하다. 이를 가능하게 해주는 것이 바로 제어문이다. 제어문을 통해 프로그램의 실행 흐름을 조건에 따라 분기하거나, 반복할 수 있다.

제어문의 기본 구성

제어문은 조건식과 중괄호 {} 블록으로 구성된다. 조건식의 결과에 따라 블록 내부의 실행 여부가 결정되며, 조건식이 참(true)인지 거짓(false)인지에 따라 실행 흐름이 바뀐다. 제어문의 종류는 크게 다음과 같다:

  • 조건문: if, else if, switch
  • 반복문: for, while, do-while
  • 제어 키워드: break, continue

제어문의 동작 방식

제어문 블록이 완료된 후 실행 흐름이 다시 제어문의 시작으로 돌아갈지, 또는 정상적인 코드 흐름으로 복귀할지는 제어문의 종류에 달려 있다. 조건문은 조건이 맞을 때만 실행되며, 반복문은 조건이 맞는 한 계속해서 반복한다. 이러한 반복 동작을 루핑(looping)이라고 한다.

제어문은 다른 제어문 내부에 포함될 수 있어 복잡한 실행 흐름을 만들어낼 수 있다. 예를 들어, if문 안에 for문이나 while문을 포함하여 다중 조건을 적용하는 것이 가능하다.

제어문의 종류

1. if문

if문은 특정 조건이 참일 때만 블록 내부의 코드를 실행한다.

  • 기본 사용법:
if (조건식) {
    // 조건이 참일 때 실행할 코드
}
  • 예제:

    int score = 93;
    
    if(score >= 90) {
        System.out.println("점수가 90보다 큽니다.");
        System.out.println("등급은 A입니다.");
    }

    중괄호 {}의 중요성: 블록 내에 실행문이 하나만 있을 때 중괄호를 생략할 수 있지만, 중괄호를 생략하면 가독성이 떨어지고, 의도하지 않은 오류가 발생할 수 있다. 다음 예제는 중괄호 생략으로 인한 오류를 보여준다.

    if(score < 90)
        System.out.println("점수가 90보다 작습니다.");
        System.out.println("등급은 B입니다."); // 항상 실행됨

2. if-else문

조건이 참일 때와 거짓일 때 각각 다른 코드를 실행하고 싶다면 if-else문을 사용한다.

  • 사용법:

    if (조건식) {
        // 조건이 참일 때 실행할 코드
    } else {
        // 조건이 거짓일 때 실행할 코드
    }

3. else if문

여러 조건을 평가해야 할 때는 else if문을 추가하여 다양한 조건에 맞춰 실행 코드를 분기할 수 있다.

  • 사용법:

    if (조건식1) {
        // 조건식1이 참일 때 실행할 코드
    } else if (조건식2) {
        // 조건식2가 참일 때 실행할 코드
    } else {
        // 위의 모든 조건이 거짓일 때 실행할 코드
    }

4. switch문

여러 경우의 수에 따라 실행 흐름을 분기할 때는 switch문을 사용한다. switch문은 특정 값에 따라 분기할 때 유용하다.

  • 사용법:

    switch (변수) {
        case 값1:
            // 값1일 때 실행할 코드
            break;
        case 값2:
            // 값2일 때 실행할 코드
            break;
        default:
            // 모든 경우가 일치하지 않을 때 실행할 코드
    }

    break문을 사용하여 각 case가 끝난 후 빠져나가도록 한다. default는 모든 경우가 일치하지 않을 때 실행된다.

5. for문

for문은 반복 횟수가 정해져 있을 때 사용하며, 일반적으로 카운터 변수를 이용해 반복을 제어한다.

  • 사용법:

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

  • 예제:

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

6. while문

while문은 조건식이 참일 동안 반복 실행하며, 반복 횟수가 정해져 있지 않을 때 유용하다.

  • 사용법:
while (조건식) {
    // 조건이 참일 때 반복할 코드
}
  • 예제:

    int count = 0;
    while (count < 5) {
        System.out.println("count의 값: " + count);
        count++;
    }

7. do-while문

do-while문은 한 번은 반드시 실행하고, 이후 조건에 따라 반복을 결정하는 반복문이다.

  • 사용법:
    java
    코드 복사
    do {
    // 최소 한 번 실행할 코드
    } while (조건식);

8. break문과 continue문

  • break문: 반복문을 중단하고 반복문 밖으로 나간다.

  • continue문: 반복문 내에서 남은 코드를 건너뛰고 다음 반복을 실행한다.

  • 예제:

    for (int i = 0; i < 5; i++) {
    if (i == 3) {
    break; // i가 3일 때 반복문을 중단
    }
    System.out.println(i);
    }

    for (int i = 0; i < 5; i++) {
    if (i == 3) {
    continue; // i가 3일 때 현재 반복을 건너뜀
    }
    System.out.println(i);
    }

  • 결론
    제어문은 자바 프로그램의 실행 흐름을 유연하게 제어할 수 있게 해준다. if, switch, for, while과 같은 제어문을 통해 조건에 따른 분기와 반복이 가능하며, 이를 적절히 활용하여 원하는 논리 흐름을 구현할 수 있다.
  • 제어문의 활용은 코딩의 기본이자 필수적이므로, 다양한 예제를 통해 실습하고 체득하는 것이 중요한 것 같다.

0개의 댓글