Java - Condition

CYSSSSSSSSS·2024년 2월 2일
0

자바

목록 보기
3/26

조건문

if/else

  • 특정 조건에 따라 실행되는 코드를 다르게 하고 싶을때 사용한다

if문

  • 특정 조건이 참인지 확인하고 참인 경우에만 코드 블록을 실행한다.
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 이기 때문에 블록 실행 하지 않음

else 문

  • if 문에서 만족하지 못할 경우 자동으로 실행되는 코드 문을 else 문이다.
package Cond;

public class If2 {
    public static void main(String[] args) {
        int age = 20;
        if (age > 18) { // 성인 일경우
            System.out.println("성인입니다");
        }else { // 성인이지 않을 경우 
            System.out.println("미성년자 입니다");
        }
    }
}
  • age 변수에 값에 따라 두가지 중에 하나만 실행 시킬수 있다.

else if

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("성인");
        }
    }
}
  • else if 로 조건문을 한개만 만족한 것만 체크하기 때문에 불필요한 수행 횟수를 줄일 수 있다.
  • 중복 체크를 수행하단 조건식도 해결 할 수 있다.

if 문과 else if 문

  • if 와 else if 를 같이 사용하는 경우는 서로 연관된 조건일경우 하나로 묶어야 할때 사용한다.
  • 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 += 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문

  • if 문을 조금더 편리하게 사용할 수 있는 기능이다.
  • if 문을 통해 비교 연산자를 사용 할 수 있지만 switch 문은 값이 같은지만 비교 할 수 있다.
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);
    }
}
  • default 가 아닌 case 문에서는 break를 걸어줘야 탈출이 가능하다
  • 만약 case에 break가 없다면 다음 case문을 실행 해버린다.
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);
    }
}
  • case value -> "실행되는 코드" 로 switch 문을 진행한다.
  • 선택된 데이터를 반환할 수 있다.

삼항 연산자

  • 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);
    }
}
  • 단순히 참과 거짓에 따라 변수의 값이 달라질 경우 삼항 연산자를 사용하여 코드를 단순화 할 수 있다.
  • 삼항 연산자를 사용할 때 "?:" 연산자를 사용할 수 있다.
"자료형" "변수명" = "조건식" ? true일때 : false일때
  • 조건식 , true , false 가 3항으로 코드를 작성하면 된다.
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);
    }
}
profile
개발자 되고 싶어요

0개의 댓글

관련 채용 정보