Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 제어 흐름문 완벽 정리: if...else부터 switch까지

Java에서는 프로그램의 실행 흐름을 제어할 수 있는 다양한 방법을 제공합니다. 제어 흐름문(Control Flow Statements)은 조건 판단을 통해 코드의 실행 순서를 변경하거나 분기시키는 역할을 합니다.

Java의 대표적인 조건 판단문은 다음과 같습니다.

  • if
  • if...else
  • switch

이 글에서는 각 제어 흐름문의 개념과 함께 실제 코드 예제를 통해 자세히 살펴보겠습니다.

Java if문

if 문의 기본 문법은 다음과 같습니다.

if(condition) {
    // 조건이 true일 때만 실행되는 코드
}

if 키워드는 괄호 안의 조건이 참(true)인지 거짓(false)인지를 검사합니다. 조건이 true로 평가되면 중괄호 {} 안에 작성된 코드가 실행됩니다.

if문 예제

if(month == "December") {
    System.out.println("Winter Season");
}

참고: 괄호 안의 조건식은 반드시 boolean 표현식이어야 합니다. 즉, 조건식의 결과는 항상 true 또는 false여야 합니다.

조건 비교 연산자

조건을 평가할 때는 일반적인 수학적 비교 연산자를 사용합니다.

  • 작다 — a < b
  • 작거나 같다 — a <= b
  • 크다 — a > b
  • 크거나 같다 — a >= b
  • 같다 — a == b
  • 같지 않다 — a != b

조건은 하나만 사용할 수도 있고 여러 개를 조합할 수도 있지만, 최종 결과는 반드시 boolean 값이어야 합니다.

논리 연산자 활용

여러 조건을 함께 사용할 때는 논리 AND(&&)와 논리 OR(||) 연산자를 사용합니다.

논리 OR(||) 사용 예제:

if(month == "December" || month == "January") {
    System.out.println("Winter Season");
}

논리 AND(&&) 사용 예제:

if(month == "December" && day == "25") {
    System.out.println("Christmas Day!");
}

참고: 논리 AND(&&)는 두 조건이 모두 true일 때만 true를 반환하고, 논리 OR(||)는 두 조건 중 하나라도 true이면 true를 반환합니다.

Java else문

if 문의 결과가 false일 때 별도의 동작을 수행하고 싶다면 else 문을 사용합니다.

else 문은 if 문의 닫는 중괄호 바로 뒤에 위치해야 합니다.

else문 예제

int temperature;

if(temperature <= 0) {
    System.out.println("Water in solid state");
} else {
    System.out.println("Water in liquid state");
}

위 예제에서 온도가 0 이하라면 콘솔에 "Water in solid state"가 출력되고, else 블록은 실행되지 않습니다.

반대로 온도가 0보다 크면 "Water in liquid state"가 출력됩니다.

삼항 연산자(Ternary Operator)로 간결하게 표현하기

if...else 문은 삼항 연산자라고 불리는 축약 표기법으로도 작성할 수 있습니다.

삼항 연산자의 문법은 다음과 같습니다.

variable = (condition) ? expressionTrue : expressionFalse;

먼저 괄호 안의 조건을 평가합니다. 조건이 true이면 ?: 사이의 표현식이 실행되고, false이면 : 뒤의 표현식이 실행됩니다.

쉽게 기억하는 방법: (조건) ? true일 때 : false일 때

Java else if문

조건이 만족될 때까지 여러 개의 ifelse 문을 연달아 사용할 수 있습니다.

else if의 문법은 다음과 같습니다.

if(condition1) {
    // condition1이 true일 때 실행되는 코드
} else if(condition2) {
    // condition2가 true일 때 실행되는 코드
} else {
    // 두 조건 모두 false일 때 실행되는 코드
}

참고: else if 문은 여러 개 사용할 수 있지만, 마지막에는 항상 else 문으로 종료하는 것이 좋습니다.

else if문 예제

int temperature;

if(temperature <= 0) {
    System.out.println("Water in solid state");
} else if(temperature >= 100){
    System.out.println("Water in gas state");
} else {
    System.out.println("Water in liquid state");
}

위 예제는 물의 상태를 온도에 따라 세 가지 경우로 나누어 판단하는 전형적인 else if 활용 사례입니다.

Java switch문

프로그램의 흐름을 제어하는 또 다른 방법은 switch 문입니다. switch 문은 선택 가능한 옵션이 여러 개 있고, 각 경우마다 다른 코드를 실행해야 할 때 유용합니다.

동작 방식은 여러 개의 if...else 문을 사용하는 것과 유사하지만, 코드가 더 깔끔하고 가독성이 좋습니다.

switch문 문법

switch(expression) {
    case a:
        // 실행할 코드
        break;
    case b:
        // 다른 실행 코드
        break;
    default:
        // 기본 실행 코드
}

먼저 표현식(expression)을 평가한 후, 그 결과를 각 case 값과 비교합니다. 표현식의 결과가 어떤 case와 일치하면 해당 코드 블록이 실행됩니다.

  • break 키워드: switch 블록을 빠져나가는 역할을 합니다. 일치하는 case를 찾은 후 불필요하게 다른 case 조건까지 검사하는 것을 방지하므로 매우 중요합니다.
  • default 키워드: 어떤 case도 switch 표현식의 값과 일치하지 않을 때 실행됩니다.

breakdefault는 모두 선택 사항이지만, 좋은 코딩 습관을 위해 사용하는 것이 권장됩니다.

switch문 예제

아래 코드는 switch 문을 사용하여 지원되는 언어인지 확인하는 예제입니다.

String lang = "en";
switch (lang) {
    case "en":
        System.out.println("English");
        break;
    case "fr":
        System.out.println("French");
        break;
    case "de":
        System.out.println("Deutsch");
        break;
    default:
        System.out.println("Language not supported");
}

실행 결과:

English

변수 lang의 값이 "en"이므로 첫 번째 case가 실행되고, break 문에 의해 switch 블록이 즉시 종료됩니다.

정리

이 글에서는 Java의 대표적인 제어 흐름문인 if, else if, 그리고 switch 문에 대해 알아보았습니다.

  • if문: 단순 조건 판단에 적합
  • if...else / else if문: 양방향 또는 다방향 분기 처리에 적합
  • switch문: 하나의 변수에 대한 여러 값 비교 시 가독성이 뛰어남

상황에 맞는 제어 흐름문을 선택하면 더 읽기 쉽고 유지보수하기 좋은 코드를 작성할 수 있습니다.