본문 바로가기
Programming/Javascript

[Javascript] 조건문 - switch문

by 콩king 2022. 6. 15.

 

● 제어문 : 순차적으로 진행되는 흐름을 제어하려는 문장
● 조건문 :  순차적으로 진행되던 흐름 중에 조건에 참, 거짓으로 인해 서로 다른 흐름을 만드는 제어문의 종류
● if : 논리값으로 흐름을 제어
● switch : 조건에 대한 값으로 흐름을 제어 (switch로 만든 제어문 > if문 변경 가능)

 

● 문법
switch(조건 값){
    case 값1:
        조건 값 = 값1 경우 실행하는 실행문1;
        조건 값 = 값1 경우 실행하는 실행문1;
        break;  // 값1에 대한 실행문을 끝내는 키워드
    case 값2:
        조건 값 = 값2 경우 실행하는 실행문2;
        조건 값 = 값2 경우 실행하는 실행문2;
        break;  // 값2에 대한 실행문을 끝내는 키워드
    default:    // if문의 else와 같은 역할, 필요할때만 선언
        조건 값이 어떠한 case 값에도 해당되지 않을때 실행하는 실행문3;
        조건 값이 어떠한 case 값에도 해당되지 않을때 실행하는 실행문3;
        break;	// 마지막 부분은 더이상 미끄러질 공간이 없기에 break; 를 생략하기도 함
    }

 

 

● break 키워드

break; 를 만나면  해당 스위치 조건문에서 아예 나간다
break; 가 없으면 다음 케이스문의 결과가 매칭되지 않더라고 다음 문장도 실행됨.
마지막 케이스는 아래에 더이상 실행할 실행문이 없어서 따로 break; 를 안써도 됨.

 

● 예제
let sum = '양';
switch(sum){
    case '수':
        console.log("90점이상입니다.");
        break;  //더이상 다른 case문을 실행시키지 않음.
    case '우':
        console.log("80점이상입니다.");
        break;  
    case '미':
        console.log("70점이상입니다.");
        break;
    case '양':
        console.log("60점이상입니다.");
        break;
    case '가':
        console.log("50점이상입니다.");
        break;
}

 

●예제 ( case 여러개 쓸 경우)
// 1, 3, 5, 7, 8, 10, 12월 > 31일
// 2월 > 28일
// 4 , 6, 9, 11월 > 30일

let month = Math.floor((Math.random()*12)+1);
document.write(month);

switch (month) {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        document.write(month + "월은 31일까지 있습니다.")
        break;
    case 2:
        document.write(month +"월은 28일까지 있습니다.")
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        document.write(month +"월은 30일까지 있습니다.")
        break;
}

switch(true){
    case [1, 3, 5, 7, 8, 10, 12].includes(month):
        document.write("31일까지 있습니다.")
        break;
    case [2].includes(month):
        document.write("28일까지 있습니다.")
        break;
    case [4, 6, 9, 11].includes(month):
        document.write("30일까지 있습니다.")
        break;
}

 

● 예제
// 성적랜덤값 : 0 ~ 100
// A: 90 ~ 100
// B: 80 ~ 
// C: 70 ~ 
// D: 60 ~ 
// F:  ~ 59

let score = Math.floor(Math.random()*101);
document.write(score + "점 <br>");

let score1 = parseInt(score/10);

switch(score1){
    case 10: case 9:
        document.write("A학점입니다.");
        break;
    case 8:
        document.write("B학점입니다.");
        break;
    case 7:
        document.write("C학점입니다.");
        break;
    case 6:
        document.write("D학점입니다.");
        break;
    default:
        document.write("F학점입니다.");
        break;
}

'Programming > Javascript' 카테고리의 다른 글

[Javascript] 배열  (0) 2022.07.11
[Javascript] 반복문 - while문 do~while문  (0) 2022.06.22
[Javascript] 반복문 - for문  (0) 2022.06.22
[Javascript] 형변환  (0) 2022.06.15
[Javascript] 조건문 - if문  (0) 2022.06.14

댓글