package Cond;
public class If1 {
public static void main(String[] args) {
int age = 20;
if (age >= 18){
System.out.println("성인입니다.");
}
if(age < 18){ // false 인 조건식은 실행이 안된다.
System.out.println("미성년자 입니다.");
}
}
}
실행 순서
- int age = 20;
- if (age >= 18) // 첫 번째 조건문 실행 age 변수 읽어온다
- if(20 >= 18) // 읽어온 변수를 통해 비교
- if(True) // 조선식의 결과가 true 이기 때문에 블록 실행
- int age = 20;
- if (age < 18) // 두 번째 조건문 실행 age 변수 읽어온다
- if (20 < 18) // 읽어온 변수의 데이터와 읽는다
- if (false) // 조건식의 결과가 false 이기 때문에 블록 실행 하지 않음
package Cond;
public class If2 {
public static void main(String[] args) {
int age = 20;
if (age > 18) { // 성인 일경우
System.out.println("성인입니다");
}else { // 성인이지 않을 경우
System.out.println("미성년자 입니다");
}
}
}
package Cond;
public class If3 {
public static void main(String[] args) {
int age = 14;
if (age <=7){
System.out.println("미취학");
}
if(8 <= age && age <= 13){
System.out.println("초등학생");
}
if(14 <= age && age <= 16){
System.out.println("중학생");
}
if (17 <= age && age <= 19){
System.out.println("고등학생");
}
if (age >= 20){
System.out.println("성인");
}
}
}
불필요한 조건을 계속 검사한다
위의 코드 처럼 중학생이라는 조건문을 만족을 해도 아래 고등학생과 성인을 전부 검사한다는 점에서 단점이 있다.
초등학생 이라고 가정 하면 미취학은 아니라는것이 체크가 되기 때문에 계속 체크 한다.
불필요한 조건식을 실행 안하고 할수 있는 방법이 else if 이다
if/else if / else 를 실행하면서 else 를 생략 할 수 있다.
package Cond;
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("성인");
}
}
}
package Cond;
public class If5 {
public static void main(String[] args) {
int price = 10000;
int age = 10;
int discount = 0;
if (price >= 10000){ // 연관성이 없는 조건이기 때문에 따로 따로 사용한다
discount += 1000;
System.out.println("10000원 이상 구매 1000원 할인");
}
if (age <= 10){
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 += 1000;
System.out.println("10000원 이상 구매 1000원 할인");
} else if (age <= 10){ // 하나의 조건식으로 묶으면 3개의 조건 중에서 하나만 실행이 된다.
discount += 1000;
System.out.println("어린이 1000원 할인");
} else{
System.out.println("할인 없음");
}
System.out.println("총 할인 금액 " + discount + "원"); // 따라서 결과적으로 1000원만 할인된다.
}
}
블록 코드
- if 문에서 블록 을 사용하지 않을 경우 if문 밑에 바로 한줄이 블록이 되서 사용한다.
- if / else if / else 문을 사용할 때 왠만하면 블록을 사용해서 가독성 + 유지 보수성 때문이다.
switch (조건식) {
case value1 :
// 실행 되는 코드
case value2:
// 실행 되는 코드
case value3:
// 실행 되는 코드
}
package Cond;
public class Switch2 {
public static void main(String[] args) {
int grade = 2;
int coupon;
switch (grade){ // 조건에 어떤 변수의 값을 switch 문으로 쓸건지 결정
case 1:
coupon = 1000;
break; // switch 문을 사용할 때 break 를 사용해야 switch문 탈출이 가능하다.
case 2:
coupon = 2000;
break;
case 3:
coupon = 3000;
break;
default:
coupon = 500;
}
System.out.println("발급 받은 쿠폰 " + coupon);
}
}
package Cond;
public class Switch3 {
public static void main(String[] args) {
int grade = 2;
int coupon;
switch (grade){ // 조건에 어떤 변수의 값을 switch 문으로 쓸건지 결정
case 1:
coupon = 1000;
break; // switch 문을 사용할 때 break 를 사용해야 switch문 탈출이 가능하다.
case 2:
case 3:
coupon = 3000; // case2 에 해당하는 케이스문이 case3 문으로 실행된다.
break;
default:
coupon = 500;
}
System.out.println("발급 받은 쿠폰 " + coupon);
}
}
자바 14 Switch문
package Cond;
public class Switch4 {
public static void main(String[] args) {
int grade = 2;
// java 14의 새로운 문법
int coupon = switch (grade){
case 1 -> 1000; // case value -> 실행
case 2 -> 2000;
case 3 -> 3000;
default -> 500;
};
System.out.println("발급받은 쿠폰 " + coupon);
}
}
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);
}
}
"자료형" "변수명" = "조건식" ? true일때 : false일때
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);
}
}