if (if - else)
특정 조건에 따라서 코드 실행
특정 조건에 따라서 다른 코드를 실행하는 것을 조건문
조건문엔 if, switch문이 있다.
If
특정 조건이 참인지 확인, 조건이 참이면 특정 코드 블록을 실행
if (condition) {
// 조건이 참일 때 실행되는 코드
}
public class If1 {
public static void main(String[] args) {
int age = 20;
if (age >= 18){
System.out.println("성인입니다");
}
if (age < 18){
System.out.println("미성년자 입니다");
}
}
}
else문
사용하던 앞서 진행한 프로그램을 조금더 간결하게 변경 가능
public class If2 {
public static void main(String[] args) {
int age = 20;
if (age >= 18){
System.out.println("성인입니다");
} else {
System.out.println("미성년자 입니다");
}
}
}
If문 2 (else - if)
public class If3 {
public static void main(String[] args) {
int age = 14;
if (age <= 7) {
System.out.println("미취학");
}
if (age >= 8 && age <= 13) {
System.out.println("초등학생");
}
if (age >= 14 && age <= 16) {
System.out.println("중학생");
}
if (age >= 17 && age <= 19) {
System.out.println("고등학생");
}
if (age >= 20) {
System.out.println("성인");
}
}
}
단점이라면 조건을 만족해도 불필요한 검사가 지속된다. 그리고 코드가 반복되는 걸 볼 수 있다.
else if문을 사용하면 코드 반복성을 줄일 수 있다.
else - if
public class If4 {
public static void main(String[] args) {
int age = 14;
if (age <= 7){
System.out.println("미취학");
} else if (age <= 13){
System.out.println("초등학생");
} else if (age <= 16){
System.out.println("중학생");
} else if (age <= 19){
System.out.println("고등학생");
} else {
System.out.println("성인");
}
}
}
전체 if문을 하나로 묶는다고 보면 된다. 이렇게 하면 특정 조건이 만족하면 해당 코드를 실행하고 if 문 전체를 빠져나온다.
If문 3 (if문과 else if문)
if문에 else if를 함께 사용하는 것은 서로 연관조건일때
서로 독립된 조건이라면 else if를 사용하지 않고 if문을 각각 따로 사용
public class If5 {
public static void main(String[] args) {
int price = 10000;
int age = 10;
int discount = 0;
if (price >= 10000){
discount = discount + 1000;
System.out.println("10000원 이상 구매, 1000원 할인 ");
}
if (age <= 10){
discount = discount + 1000;
System.out.println("어린이, 1000원 할인 ");
}
System.out.println("총 금액 할인 " + discount);
}
}
조건이 서로 영향을 주지 않고 각각 수행해야 하는 경우 else if를 사용하면 안되고 대신 여러 if문을 분리 해서 사용
public class If6 {
public static void main(String[] args) {
int price = 10000;
int age = 10;
int discount = 0;
if (price >= 10000) {
discount = discount + 1000;
System.out.println("10000원 이상 구매, 1000원 할인 ");
} else if (age <= 10) {
discount = discount + 1000;
System.out.println("어린이, 1000원 할인 ");
} else {
System.out.println("할인 없음");
}
System.out.println("총 금액 할인 " + discount);
}
}
둘 차이점을 비교하면 언제 else if를 써야 하고 if를 써야하는지 알수 있을 것이다
참고) if문 중괄호 생략
if문 다음에 실행할 명령어 하나만 있는 경우 {} 생략 가능
추천하는 방향은 아니다