<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*
swith-case 문(switch 문)
- 주어진 조건에 따라 값을 비교하여 일치하는 값에 대한 문장 실행
- if 문과 달리 조건에 대한 범위 지정이 불가능하며, 값에 대한 1:1 매칭을 통해 일치 여부 검사
- switch 문을 통해 조건식을 판별하고, case 문 뒤에 기술된 값과 비교하여 일치하는 값이 존재하는 case 문의 실행 문장을 실행
- case 문 뒤의 문장을 실행하다가 break 문을 만나거나 switch 문이 끝날 떄까지
그 다음 case 문의 문장 또는 default 문의 문장들을 차례대로 모두 실행함
(=> break 문의 역할은 그 지점에서 switch 문을 종료하는 역할)
또한, break 문은 생략이 가능함
- 일치하는 case 문이 없을 경우 실행할 문장은 default 문에 기술함(생략 가능함)
< 기본 문법 >
switch(식) {
case 값1 : 식의 결과가 값1 과 같을 경우 실행할 문장들... [break;]
case 값2 : 식의 결과가 값2 와 같을 경우 실행할 문장들... [break;]
case 값n : 식의 결과가 값n 과 같을 경우 실행할 문장들... [break;]
[default : 일치하는 case 문이 없을 경우 실행할 문장들...]
}
*/
var num = 3;
// switch 문 소괄호() 내부에 검사할 값 또는 식 전달
// switch(num) {
// // 검사할 값 또는 식의 결과와 일치하는지 여부를 case 문 뒤에 값을 기술하여 판별
// // => 주의! break 문이 없으므로 num 값에 따라 해당 문장을 실행한 후
// // switch 문이 종료되는 것이 아니라 다음 case 문의 실행 문장까지 실행됨
// case 1 : alert("1 입니다!");
// case 2 : alert("2 입니다!"); // num 이 2 일 때 실행할 문장이며
// case 3 : alert("3 입니다!"); // break 문이 없으므로 num 이 3 일 때 실행할 문장까지 실행됨
// }
// switch(num) {
// // 검사할 값 또는 식의 결과와 일치하는지 여부를 case 문 뒤에 값을 기술하여 판별
// // => 각 문장 뒤에 break 문을 기술하면 해당 break 문을 만났을 때
// // 다른 case 문을 실행하지 않고 바로 switch 문을 빠져나감(= 종료)
// case 1 : alert("1 입니다!"); break;
// case 2 : alert("2 입니다!"); break;
// case 3 : alert("3 입니다!"); // break; // break 문 생략 가능(마지막 case 문이기 떄문)
// }
// num = 1;
// switch(num) {
// // 검사할 값 또는 식의 결과와 일치하는지 여부를 case 문 뒤에 값을 기술하여 판별
// // => 각 문장 뒤에 break 문을 기술하면 해당 break 문을 만났을 떼
// case 1 :
// document.write("1 입니다!<br>");
// document.write("break 문이 있으므로 case 1 수행 후 종료됨!");
// break;
// case 2 :
// document.write("2 입니다!<br>");
// document.write("beeak 문이 있으므로 case 2 수행 후 종료됨!");
// break;
// case 3 :
// document.write("3 입니다!<br>");
// document.write("break 문이 있으므로 case 3 수행 후 종료됨!");
// }
num = 3;
switch(num) {
case 1 :
document.write("1 입니다!<br>");
document.write("break 문이 있으므로 case 1 수행 후 종료됨!");
break;
case 2 :
document.write("2 입니다!<br>");
document.write("break 문이 있으므로 case 2 수행 후 종료됨!");
break;
case 3 :
document.write("3 입니다!<br>");
document.write("break 문이 있으므로 case 3 수행 후 종료됨!");
break;
default :
document.write("일치하는 case 문이 없으므로 default 문 실행됨!");
}
document.write("<hr>");
// month 변수에 현재 날짜의 달(월)을 입력하고
// 1, 3, 5, 7 , 8, 10, 12 월일 경우 "31일까지!" 출력,
// 4, 6, 9, 11 월일 경우 "30일까지!" 출력,
// 2 월일 경우 "28일까지!" 출력
var month = 13;
// switch(month) {
// case 1 : document.write("31일까지!"); break;
// case 3 : document.write("31일까지!"); break;
// case 5 : document.write("31일까지!"); break;
// case 7 : document.write("31일까지!"); break;
// case 8 : document.write("31일까지!"); break;
// case 10 : document.write("31일까지!"); break;
// case 12 : document.write("31일까지!"); break;
// case 4 : document.write("30일까지!"); break;
// case 6 : document.write("30일까지!"); break;
// case 9 : document.write("30일까지!"); break;
// case 11 : document.write("30일까지!"); break;
// case 2 : document.write("28일까지!"); break;
// default : document.write("입력 오류!");
// }
// 31일까지의 달 7개, 30일까지의 달 4개는 중복되는 코드가 발생함
// 따라서, break 문의 특성을 활용하면 중복되는 코드 제거가 가능함
month = 4;
switch(month) {
case 1 : // 1월부터
case 3 : // 12월까지
case 5 : // 31일에 해당하는
case 7 : // 월(month)이 입력될 경우
case 8 : // 코드 중복을 제거하여
case 10 : // 12월에서만 코드가 실행되도록 break 문까지 생략
case 12 : document.write(month + "월 : 31일까지!"); break; // switch 문 빠져나감
case 4 : // 4, 6, 9, 11월에 해당하는 월 입력 시
case 6 : // 모든 실행문을 11월에 위치시켜
case 9 : // 하나의 문장으로 4개의 case 문의 처리 가능
case 11 : document.write(month + "월 : 30일까지!"); break;
case 2 : document.write(month + "월 : 28일까지!"); break;
default : document.write(month + "월 : 입력 오류!");
}
// => 해결2) 입력받은 문자 형태의 데이터를 숫자 형태의 데이터로 변환(Number(데이터))
switch(Number(month2)) {
case 1 : // 1월부터
case 3 : // 12월까지
case 5 : // 31일에 해당하는
case 7 : // 월(month)이 입력될 경우
case 8 : // 코드 중복을 제거하여
case 10 : // 12월에서만 코드가 실행되도록 break 문까지 생략
case 12 : document.write(month + "월 : 31일까지!"); break; // switch 문 빠져나감
case 4 : // 4, 6, 9, 11월에 해당하는 월 입력 시
case 6 : // 모든 실행문을 11월에 위치시켜
case 9 : // 하나의 문장으로 4개의 case 문의 처리 가능
case 11 : document.write(month + "월 : 30일까지!"); break;
case 2 : document.write(month + "월 : 28일까지!"); break;
default : document.write(month + "월 : 입력 오류!");
}
</script>
</head>
<body>
</body>
</html>
Insert title here
// num = 1;
// switch(num) {
// // 검사할 값 또는 식의 결과와 일치하는지 여부를 case 문 뒤에 값을 기술하여 판별
// // => 각 문장 뒤에 break 문을 기술하면 해당 break 문을 만났을 떼
// case 1 :
// document.write("1 입니다!
");
// document.write("break 문이 있으므로 case 1 수행 후 종료됨!");
// break;
// case 2 :
// document.write("2 입니다!
");
// document.write("beeak 문이 있으므로 case 2 수행 후 종료됨!");
// break;
// case 3 :
// document.write("3 입니다!
");
// document.write("break 문이 있으므로 case 3 수행 후 종료됨!");
// }
num = 3;
switch(num) {
case 1 :
document.write("1 입니다!<br>");
document.write("break 문이 있으므로 case 1 수행 후 종료됨!");
break;
case 2 :
document.write("2 입니다!<br>");
document.write("break 문이 있으므로 case 2 수행 후 종료됨!");
break;
case 3 :
document.write("3 입니다!<br>");
document.write("break 문이 있으므로 case 3 수행 후 종료됨!");
break;
default :
document.write("일치하는 case 문이 없으므로 default 문 실행됨!");
}
document.write("<hr>");
// month 변수에 현재 날짜의 달(월)을 입력하고
// 1, 3, 5, 7 , 8, 10, 12 월일 경우 "31일까지!" 출력,
// 4, 6, 9, 11 월일 경우 "30일까지!" 출력,
// 2 월일 경우 "28일까지!" 출력
var month = 13;
// switch(month) {
// case 1 : document.write("31일까지!"); break;
// case 3 : document.write("31일까지!"); break;
// case 5 : document.write("31일까지!"); break;
// case 7 : document.write("31일까지!"); break;
// case 8 : document.write("31일까지!"); break;
// case 10 : document.write("31일까지!"); break;
// case 12 : document.write("31일까지!"); break;
// case 4 : document.write("30일까지!"); break;
// case 6 : document.write("30일까지!"); break;
// case 9 : document.write("30일까지!"); break;
// case 11 : document.write("30일까지!"); break;
// case 2 : document.write("28일까지!"); break;
// default : document.write("입력 오류!");
// }
// 31일까지의 달 7개, 30일까지의 달 4개는 중복되는 코드가 발생함
// 따라서, break 문의 특성을 활용하면 중복되는 코드 제거가 가능함
month = 4;
switch(month) {
case 1 : // 1월부터
case 3 : // 12월까지
case 5 : // 31일에 해당하는
case 7 : // 월(month)이 입력될 경우
case 8 : // 코드 중복을 제거하여
case 10 : // 12월에서만 코드가 실행되도록 break 문까지 생략
case 12 : document.write(month + "월 : 31일까지!"); break; // switch 문 빠져나감
case 4 : // 4, 6, 9, 11월에 해당하는 월 입력 시
case 6 : // 모든 실행문을 11월에 위치시켜
case 9 : // 하나의 문장으로 4개의 case 문의 처리 가능
case 11 : document.write(month + "월 : 30일까지!"); break;
case 2 : document.write(month + "월 : 28일까지!"); break;
default : document.write(month + "월 : 입력 오류!");
}
// => 해결2) 입력받은 문자 형태의 데이터를 숫자 형태의 데이터로 변환(Number(데이터))
switch(Number(month2)) {
case 1 : // 1월부터
case 3 : // 12월까지
case 5 : // 31일에 해당하는
case 7 : // 월(month)이 입력될 경우
case 8 : // 코드 중복을 제거하여
case 10 : // 12월에서만 코드가 실행되도록 break 문까지 생략
case 12 : document.write(month + "월 : 31일까지!"); break; // switch 문 빠져나감
case 4 : // 4, 6, 9, 11월에 해당하는 월 입력 시
case 6 : // 모든 실행문을 11월에 위치시켜
case 9 : // 하나의 문장으로 4개의 case 문의 처리 가능
case 11 : document.write(month + "월 : 30일까지!"); break;
case 2 : document.write(month + "월 : 28일까지!"); break;
default : document.write(month + "월 : 입력 오류!");
}