[조건문]switch

seni·2024년 6월 17일

JAVA

목록 보기
5/34

switch문

  • switch가 case를 만족하면 case 뒤에 명시되어 있는 연산을 수행함.
  • 각 case 연산문 마지막에는 break; 꼭 넣어줘야함.
  • break; 문은 해당 case의 연산문이 끝났다는 것을 알려주어 switch문을 종료시켜줌.
  • switch 중괄호 안의 제일 마지막에 default; 넣어서 case 들이 모두 만족하지 않을때 수행 할 연산을 정해줘야함. -> default는 아무것도 만족하지 낳을때 수행하는 것이다. 없다면 생략 가능..

회원 등급에 따라 다른 쿠폰을 발급하는 프로그램을 작성해야 한다.
int grade라는 변수를 사용하여, 회원 등급(grade)에 따라 다음의 쿠폰을 발급해야 한다.
1등급 :쿠폰 1000
2등급 :쿠폰 2000
3등급 :쿠폰 3000
위의 등급이 아닐 경우 : 쿠폰 500
각 쿠폰이 할당된 후에는 "발급받은 쿠폰" + 쿠폰값 을 출력해야 한다.

if문 풀이

        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;
        }
        System.out.println("발급받은 쿠폰" + coupon);

switch문 풀이

        int grade = 0;
        int coupon;
        switch (grade) {
            case 1:
                coupon = 1000;
                break;
            case 2:
                coupon = 2000;
                break;
            case 3:
                coupon = 3000;
                break;
            default: //else {} 같은
                coupon = 500;
        }
        System.out.println("발급받은 쿠폰" + coupon );
        int grade = 2;
        int coupon;
        switch (grade) {
            case 1:
                coupon = 1000;
                break;
            case 2:  //2까지 실행했는데 조건이 없으면 3의 조건이 실행됨.
            case 3:
                coupon = 3000;
                break;
            default: //else {} 같은
                coupon = 500;
        }
        System.out.println("발급받은 쿠폰" + coupon );
        // 출력 : 발급받은 쿠폰 3000

switch문의 조건식을 넣는 부분을 보면 x > 10 과 같은 참,거짓의 결과가 나오는 조건이 아니라, 단순히 값만 넣을 수 있다.
switch문은 조건식이 특정 case와 같은지만 체크할 수 있다. >> 값이 같은지 확인하는 연산만 가능하다! (문자도 가능)
but) if문은 참, 거짓의 결과가 나오는 조건식을 자유롭게 적을 수 있음 ex) x > 10, x == 10
switch문 없이 if문만 사용해도 됨. 하지만 switch 문을 사용했을 때 더 간결한 코드를 작성할 수 있다.
but.... 새로운 switch문.. (-)

switch문 풀이

학점에 따른 성취도 출력하기
String grade라는 문자열을 만들고, 학점에 따라 성취도를 출력하는 프로그램을 작성하자.
"A" "탁월한 성과입니다!"
"B" "좋은 성과입니다!"
"C" "준수한 성과입니다!"
"D" "향상이 필요합니다."
"F" "불합격입니다."
나머지 "잘못된 학점입니다." -> Switch문 활용해서!

        String grade = "Z";
        switch (grade) {
            case "A":
                System.out.println(" 탁월한 성과입니다!");
                break;
            case "B":
                System.out.println("좋은 성과입니다!");
                break;
            case "C":
                System.out.println("준수한 성과입니다!");
                break;
            case "D":
                System.out.println("향상이 필요합니다!");
                break;
            case "F":
                System.out.println("불합격입니다.");
                break;
            default :
                System.out.println("잘못된 학점입니다.");
profile
개발일지

0개의 댓글