1. 조건문
1) if, else
(1) if 문
- 특정 조건이 참인지 확인하고 그 조건이 참일경우 특정 코드 블록을 실행
package cond;
public class If1 {
public static void main(String[] args) {
int age = 20;
if(age >= 18) {
System.out.println("성인입니다.");
}
if(age < 18) {
System.out.println("미성년자입니다.");
}
}
}
(2) else문
- if문에서 만족하는 조건이 없을때 실행하는 코드
package cond;
public class If2 {
public static void main(String[] args) {
int age = 20;
if(age >= 18) {
System.out.println("성인입니다.");
} else {
System.out.println("미성년자입니다.");
}
}
}
2) else if
- if문의 조건이 거짓일때 다음 조건을 검사하는 코드
package cond;
public class If3 {
public static void main(String[] args) {
int age = 14;
if(age <= 7) {
System.out.println("미취학");
} else if(age >= 8 && age <= 13) {
System.out.println("초등학생");
} else if(age >= 14 && age <= 16) {
System.out.println("중학생");
} else if(age >= 17 && age <= 19) {
System.out.println("고등학생");
} else {
System.out.println("성인");
}
}
}
3) if문과 else if문
- if와 else if를 함께 사용하는 것은 서로 연관된 조건만 해당
- 독립 조건이라면 else if를 사용하지 않고 if문 따로 사용
(1) 문제
- 아이템 가격이 10000원 이상일때 1000원 할인
- 나이가 10살 이하일때 1000원 할인
- 한 사용자가 여러 할인을 받으려면 독립적인 조건으로 if문만 작성
package cond;
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 + "원");
}
}
만약, 동시에 사용한다면 무슨 문제가 발생할까? 하나만 적용됨
package cond;
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 + "원");
if(true) System.out.println("if문에서 실행됨");
}
}
(2) if문 중괄호 생략
- 한줄만 사용했을경우 if문의 중괄호를 생략할 수 있다.
- 하지만, 두 줄 이상은 사용 불가능하다
- 따라서, 유지보수하거나 가독성이 좋은 코드를 만들기 위해서는 중괄호를 사용해주는 것을 권장함.
4) Switch문
- if 문을 조금 더 편리하게 사용할 수 있는 기능
- if문은 비교연산자를 사용하지만 switch문은 단순히 값이 같은지만 비교
package cond;
public class Switch2 {
public static void main(String[] args) {
int grade = 2;
int coupon;
switch(grade) {
case 1:
coupon = 1000;
break;
case 2:
coupon = 2000;
break;
case 3:
coupon = 3000;
break;
case 4:
coupon = 4000;
break;
default:
coupon = 500;
}
System.out.println("발급받은 쿠폰 " + coupon);
}
}
- switch문의 조건을 빠져나오기 위해서 반드시 break를 사용해주어야함.
- 새로운 Switch문(자바 ver14)
package cond;
public class Switch4 {
public static void main(String[] args) {
int grade = 2;
int coupon = switch(grade) {
case 1 -> 1000;
case 2 -> 2000;
case 3 -> 3000;
default -> 500;
};
System.out.println("발급받은 쿠폰 " + coupon);
}
}
- ->를 사용하였다.
- 선택된 데이터를 반환할 수 있음.
5) 삼항 연산자
- if문을 사용할 때 단순히 참과 거짓에 따라 특정한 값을 구함
package cond;
public class CondOp1 {
public static void main(String[] args) {
int age = 18;
String status;
if(age >= 18) {
status = "성인";
} else {
status = "미성년자";
}
System.out.println("age = " + age + " status = " + status);
}
}
- 위 코드를 삼항연산자를 통해서 개선하자면 다음과 같음.
package cond;
public class CondOp2 {
public static void main(String[] args) {
int age = 18;
String status = (age >= 18) ? "성인" : "미성년자";
System.out.println("age = " + age + " status = " + status);
}
}
- 즉, 단순히 참과 거짓에 따라서 특정 값을 구하는 경우 삼항 연산자라고 불림.
- ?: 연산자를 사용함.
- 삼항연산자는 항이 3개라는 뜻. 조건, 참:조건식, 거짓:조건식