Java/[inflearn] 자바 입문

[김영한_자바입문][4. 조건문] 변수 선언 및 초기화 (p.11)

줌인. 2024. 1. 18. 21:13
변수 선언시 초기화하지 않는 값은 변수의 값이 여러 조건에 따라 동적으로 변할 때
조건문에서 초기화하는 것이 가독성을 높일 수 있다.

 

 

 

 

[교재에 표기된 코드] _ coupon 변수 선언

public static void main(String[] args) {
    int grade = 2;
    int coupon;

    if (grade == 1) {
        coupon = 1000;
    } else if (grade == 2) {
        coupon = 2000;
    } else if (grade == 3) {
        coupon = 3000;
    } else {
        coupon = 500;
    }
    System.out.println("발급받은 쿠폰 " + coupon);
}

 

[내가 작성한 코드] _ coupon 변수 선언 및 초기화

public static void main(String[] args) {
    int grade = 2;
    int coupon = 0;

    if (grade == 1) {
        coupon = 1000;
    } else if (grade == 2) {
        coupon = 2000;
    } else if (grade == 3) {
        coupon = 3000;
    } else {
        coupon = 500;
    }
    System.out.println("발급받은 쿠폰 " + coupon);
}

 

Q. 코드를 작성하면서 들었던 의문점 : 언제 그럼 변수 선언을 하고, 초기화 해야 하는건가?

 

1. 변수 사용 전 초기화 여부 : 만약 변수를 사용하기 전에 반드시 초기화해야 하는 경우가 있다면, 변수 선언과 동시에
    초기화하는 것이 좋다. 이렇게 하면 컴파일러가 초기화 여부를 검사하여 오류를 방지할 수 있습니다.
2. 변수 초기값의 의미: 초기값이 변수에 대한 기본 상태를 나타낼 때는 선언과 초기화를 함께 하는 것이 좋습니다.

    이는 코드의 가독성을 높일 수 있습니다.
3. 변수 값의 변경 여부: 변수의 값이 여러 조건에 따라 동적으로 변경될 경우, 초기화를 나중에 하는 것이 더

    적절할 수 있습니다.

 

어떤 스타일을 선택할지는 개발자의 선호도 및 코드의 가독성, 유지보수성 등을 고려하여 결정할 수 있습니다. 

중요한 것은 변수를 사용하기 전에 반드시 초기화해야 하며, 초기화의 타이밍은 코드의 요구 사항 및 가독성을 고려하여 

선택해야 합니다.

 

A. 따라서 선생님께서 coupon에 초기화 설정을 하지 않은 것은 변수의 값이 여러 조건에 따라
동적으로 변하기 때문임을 알 수 있었다.

 

 

public static void main(String[] args) {
    int grade = 2;
    int coupon;

    if (grade == 1) {
        coupon = 1000;
    } else if (grade == 2) {
        coupon = 2000;
    } else if (grade == 3) {
        coupon = 3000;
    } else {
        coupon = 500;
    }
    System.out.println("발급받은 쿠폰 " + coupon);
}

 

즉 상기 코드에서 coupon 변수는 grade에 따라 동적으로 변경되며, 각 조건에 따라 다른 값을 가질 수 있다.

이런 경우, 각 조건문에서 해당 값으로 초기화하는 것이 코드의 가독성과 의도를 더 명확하게 전달할 수 있습니다.

예를 들어, grade가 1일 때 coupon이 1000이 되는 것은 명시적(명확하게 나타난다)이며,
코드를 읽는 사람이 각 if 블록에서 어떤 조건에 따라 coupon이 어떻게 변경되는지 쉽게 이해할 수 있습니다.

따라서 초기화를 해당 조건문에서 하는 것이 코드의 가독성을 높일 뿐만 아니라, 추후에 grade에 대한 조건이 변경되거나 새로운 조건이 추가되더라도 해당 부분을 수정하기가 더 편리할 것입니다.

 

728x90