본문 바로가기
JAVA

JAVA 제어문 if-then, if-then-else[코딩백과 with JAVA]

by GangDev 2024. 12. 22.

If- Then

If-Then 문은 제어 흐름 문장 중 가장 기본적인 형태입니다. 특정 조건이 참(true)일 경우에만 특정 코드 섹션을 실행하도록 프로그램에 지시합니다. 이는 프로그램의 동작을 조건부로 만드는 강력한 도구입니다.

기본 구조

If-Then 문의 기본 구조는 다음과 같습니다:

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

예를 들어, 자전거 클래스(Bicycle)의 브레이크 시스템을 구현할 때 다음과 같이 사용할 수 있습니다:

public void applyBrakes() {
    // "if" 절: 자전거가 움직이고 있어야 함
    if (isMoving) {
        // "then" 절: 현재 속도 감소
        currentSpeed--;
    }
}

이 예시에서 isMoving 변수가 true일 경우에만 currentSpeed-- 명령어가 실행됩니다. 만약 isMovingfalse라면(즉, 자전거가 멈춰있을 경우), 프로그램은 if-then 문을 건너뛰고 다음 줄로 이동합니다.

중괄호 생략 가능성

If-Then 문에서 "then" 절에 단일 문장만 있을 경우, 중괄호({})를 생략할 수 있습니다.

public void applyBrakes() {
    // 중괄호 없이 작성한 동일한 코드
    if (isMoving)
        currentSpeed--;
}

중괄호를 생략할 것인지 여부는 개인의 취향에 따라 결정할 수 있습니다. 그러나 중괄호를 생략하면 코드가 더 취약해질 수 있습니다. 나중에 "then" 절에 두 번째 문장이 추가될 경우, 새로운 중괄호를 추가하는 것을 잊어버리는 것이 흔히 저지르는 실수입니다. 컴파일러는 이러한 유형의 오류를 잡아낼 수 없으므로, 잘못된 결과가 발생하 수 있습니다.

주의사항 및 팁

  1. 코드 가독성: 중괄호를 포함하여 코드를 작성하면 가독성이 향상되고 유지보수가 용이해집니다.
  2. 오류 방지: 중괄호를 사용하면 나중에 코드를 수정할 때 실수를 줄일 수 있습니다.
  3. 일관성: 프로젝트 전체에서 일관된 스타일을 유지하는 것이 좋습니다. 팀 프로젝트의 경우, 팀 내에서 중괄호 사용에 대한 규칙을 정하는 것이 좋습니다.
  4. 복잡한 조건: 여러 조건이 필요한 경우, 논리 연산자(and, or, not)를 사용하여 복잡한 조건문을 만들 수 있습니다.

If-Then-Else 문 개요

If-Then-Else 문은 If-Then 문을 확장한 형태로, 조건에 따라 두 가지 서로 다른 행동을 선택할 수 있게 해주는 제어 흐름 구조입니다. 이는 프로그램의 논리를 더 풍부하게 만들어주며, 다양한 상황에 대응할 수 있게 합니다.

기본 구조

If-Then-Else 문의 기본 구조는 다음과 같습니다:

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

예시 코드

자전거의 브레이크 시스템을 구현한 예시를 살펴보겠습니다:

public void applyBrakes() {
    if (isMoving) {
        currentSpeed--;
    } else {
        System.err.println("The bicycle has already stopped!");
    }
}

이 코드에서는 isMoving 변수가 true일 경우에만 currentSpeed-- 명령어가 실행됩니다. 만약 isMovingfalse라면 (즉, 자전거가 이미 멈춰있는 경우), 에러 메시지가 출력됩니다.

복합 조건 사용

If-Then-Else 문에서는 여러 조건을 체크할 수 있습니다. 시험 점수를 기준으로 등급을 부여하는 예시를 살펴보겠습니다:

import java.util.Scanner;

public class MovieTicketPrice {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("나이를 입력하세요: ");
        int age = scanner.nextInt();

        String priceMessage;

        if (age < 0) {
            priceMessage = "유효하지 않은 나이입니다.";
        } else if (age < 13) {
            priceMessage = "무료";
        } else if (age <= 18) {
            priceMessage = "500원";
        } else if (age <= 64) {
            priceMessage = "1000원";
        } else {
            priceMessage = "800원";
        }

        System.out.println("티켓 가격: " + priceMessage);
    }
}

조건 평가 순서

중요한 점은, 조건들이 순차적으로 평가된다는 것입니다. 위의 예시에서 testscore는 70이상이고 60 이상이라는 두 조건 모두를 만족하지만, 먼저 충족되는 조건(C 등급)에 해당하는 코드만 실행됩니다. 그 후의 조건들은 평가되지 않습니다.

주의사항

  1. 조건 순서: 조건들을 적절한 순서로 배치하는 것이 중요합니다. 더 구체적인 조건부터 시작하는 것이 좋습니다.
  2. 논리적 오류: 조건문이 논리적으로 일관성을 갖는지 항상 확인해야 합니다.
  3. 가독성: 복잡한 조건을 가진 경우, 각 조건에 대한 주석을 달아 코드의 의도를 평확히 하는 것이 좋습니다.
  4. 효율성: 불필요한 조건 평가를 피하기 위해 조건들을 최적화할 수 있습니다.

실제 적용 사례

If-Then-Else 문은 다양한 상황에서 유용하게 사용됩니다:

  • 사용자 인증: 비밀번호가 올바른지 확인하고, 맞으면 로그인 허용, 틀리면 오류 메시지 표시
  • 데이터 유효성 검사: 입력값이 유효한지 확인하고, 유효하면 처리, 무효하면 에러 처리
  • 게임 개발: 플레이어의 상태에 따라 다른 액션 수행

편히 모아진 글 보시려면 아래 위키독스 링크 >>
https://wikidocs.net/book/17111