else if / else 사용 시, 여러 조건 중에서 처음으로 참이 되는 조건을 만족하면
그에 해당하는 블록을 실행하고, 나머지 조건들은 확인하지 않아도 된다.
[p.2 / if 구문만 사용할 때] age = 18일때, 조건 1과 조건 2 모두 확인해야 함
public static void main(String[] args) {
int age = 18;
if (age >= 18) {
System.out.println(age + "살, 성인으로 확인되었습니다.");
}
if (age < 18) {
System.out.println(age + "살, 미성년자로 확인되었습니다.");
}
}
상기 코드를 확인할 때, '독립적으로 ' 2가지 조건이 사용되었음을 알 수 있다.
특히 조건 1은 참으로 확인되어 콘솔창에 실행되나, 조건 2는 거짓으로 확인되어 콘솔창에 실행되지 않는다.
하지만 해당 코드는 '(연관된) 관련된 조건'이 쓰였음에도 불구하고, 두 번 점검해야 한다는 문제가 있다.
[p.8 / if 구문 독립 조건 발생] A조건 만족시 혜택 적용 + B조건 만족시 혜택 적용(두 조건 만족시, 독립 실행)
public static void main(String[] args) {
int price = 10000;
int age = 10;
int discount = 0;
if (price >= 10000) {
discount += 1000;
}
if (age <= 10) {
discount += 1000;
}
System.out.println("할인을 받을 수 있는 금액 : " + discount);
}
상기 코드를 확인하면 2가지 조건이 사용되었음을 알 수 있다.
하지만 독립 조건이기 때문에 1이 참으로 확인되어도 조건 2 까지 코드 점검이 필요하다.
'독립된 조건'들의 참/거짓을 확인할 필요가 있다.
따라서 조건 2개를 모두 만족했기에 각각의 참인 조건 값을 실행하여 할인값은 2000원만 적용된다.
**discount = 0; 선언 필요
--> 들어가는 값에 따라 동적으로 변경된다하더라도 해당 구문은 0으로 초기화가 필요
(이유 : 초기 코드에 새로운 리터럴 값이 더해지기 때문)
※ 참고 : https://zoooom-in.tistory.com/27
[김영한_자바입문][4. 조건문] 변수 선언 및 초기화 (p.11)
[교재에 표기된 코드] _ 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;
zoooom-in.tistory.com
[p.8 / if 구문과 else if를 사용할 때] 조건 1이 참으로 확인될 때, 조건 2를 확인하지 않아도 됨
public static void main(String[] args) {
int price = 10000;
int age = 10;
int discount = 0;
if (price >= 10000) {
discount += 1000;
} else if (age <= 10) {
discount += 1000;
}
System.out.println("할인을 받을 수 있는 금액 : " + discount);
}
상기 코드를 확인할 때도 위와 다르게 2가지 조건이 사용되었음을 알 수 있다.
하지만 해당 코드는 조건 1이 참으로 확인되었기에 조건 2 까지 불필요 하게 코드 점검을 하지 않는다.
위와 다르게 '(연관된) 관련된 조건'이 쓰였기에, 불필요한 추가 점검(1번 점검 끝)을할 필요가 없다.
따라서 조건 1개만 만족했기에 할인값은 1000원만 적용된다.
[p.3 / if 구문과 else를 사용할 때] age = 18일때, 조건 1이 참으로 확인될 때, 조건 N을 확인하지 않아도 됨
public static void main(String[] args) {
int age = 18;
if (age >= 18) {
System.out.println(age + "살, 성인으로 확인되었습니다.");
} else {
System.out.println(age + "살, 미성년자로 확인되었습니다.");
}
}
상기 코드를 확인할 때도 위와 다르게 2가지 조건이 사용되었음을 알 수 있다.
하지만 해당 코드는 조건 1이 참으로 확인되었기에 조건 2 까지 불필요 하게 코드 점검을 하지 않는다.
위와 다르게 '(연관된) 관련된 조건'이 쓰였기에, 불필요한 추가 점검(1번 점검 끝)을할 필요가 없다.
if나 else if 문과 함께 else 문을 사용함으로써 중복 코드를 제거하고
서로 배타적인 조건들에서 효율적인 코드를 작성할 수 있다.
'Java > [inflearn] 자바 입문' 카테고리의 다른 글
[김영한_자바입문][4. 함수] if문 활용 삼항연산자 (p.15-16) (0) | 2024.01.20 |
---|---|
[김영한_자바입문][4. 함수] if / switch 사용 이해하기(p.11-12) (0) | 2024.01.20 |
[김영한_자바입문][9. 메서드] 변수 선언 및 초기화 (p.30) (0) | 2024.01.19 |
[김영한_자바입문][9. 매서드] 반환타입과 매개변수가 다를 때_묵시적 형변환 (p.25) (0) | 2024.01.19 |
[김영한_자바입문][8. 배열] 변수 선언 및 초기화 (p.24) (0) | 2024.01.19 |