Web - Front end 12. Javascript 조건문

 Web - Front end 12. Javascript 조건문


조건을 검사하여 참인지 거짓인지에 따라 서로 다른 작업(프로그램 코드)을 실행

if - else , switch


1. if 

if 문 만으로 조건문을 만들 수 있음

참이면 실행문을 실행한 후 if문을 벗어남

거짓이면 바로 if문을 벗어남

if (조건식){
...실행문... //조건식이 참인 경우
}



2.  if - else

조건식이 참인 경우와 거짓인 경우에 다른 코드를 실행

if (조건식){
...실행문... //조건식이 참인 경우
}
else {
...실행문... //조건식이 거짓인 경우
}



3. 다중 if - else 문

if-else를 연속 작성해서 각 조건에 맞는 코드를 실행

if (조건식1){
...실행문1... //조건식1이 참인 경우
}
else if (조건식2){
...실행문2... //조건식2이 참인 경우
}
....
else {
...실행문n... //앞의 모든 조건이 거짓인 경우
}



* 예시 - 학점 출력 프로그램

<body>
<h2>학점 알아보기</h2>
<hr>
<script>
let score = parseInt(prompt("점수를 입력하시오", 50));
let grade;

if (score >= 90)
grade = 'A'
else if (score >= 80)
grade = 'B'
else if (score >= 70)
grade = 'C'
else if (score >= 60)
grade = 'D'
else
grade = 'F'

document.write("당신의 학점은 " + grade + "입니다.")
</script>
</body>











4. switch

값에 따라 서로 다른 코드를 실행할 때 if-else 문보다 더 효율적

switch (식){
case 값1: // 식의 결과과 값1과 같을 때
실행문장1
break;
case 값2: // 식의 결과과 값2과 같을 때
실행문장2
break;
case 값3: // 식의 결과과 값3과 같을 때
실행문장3
break;
        ...
    case 값n: // 식의 결과과 값n과 같을 때
        실행문장n
        break;
    default : // 일치하는 결과가 없을 때
        실행문장
}

괄호 안에 있는 식의 결과가 case 문의 값과 일치하는 실행문장으로 분기

실행 후 break 문 만날 때까지 아래에 있는 실행문들 실행하다가 break문 만나면 switch문 벗어남

식과 일치하는 값이 없는 경우 default 문으로 바로 분기 (default문은 생략 가능)

실행문이 여러줄이여도 중괄호({})로 감싸지 않음

식에는 정수나 문자열에 해당하는 수식이나 변수가 옴

case문의 값에는 const로 선언된 상수나 리터럴 값만 가능(정수, 실수, 문자열, 불리언, 수식 등)

case문의 값에는 변수나 식은 올 수 없음




* 예시 - 커피 주문 받는 프로그램

<body>
<h2>커피를 주문해 주세요</h2>
<hr>
<script>
let price = 0;
let coffee = prompt("커피 종류를 입력하세요");

switch(coffee){
case "아메리카노" :
price = 3500;
break;
case "콜드브루" :
price = 4700;
break;
case "카푸치노" :
price = 4500;
break;
case "카페라떼" :
price = 4200;
break;
default :
document.write("<h3>판매하지 않는 커피</h3>");
break;
}
if (price != 0){ // 커피 가격이 책정된 경우에만 실행
document.write("<h3>" + coffee +"의 가격은 ");
            document.write("price + "원 입니다. </h3>");
}
</script>
</body>









여러 case에 대해 동일한 코드를 실행할 경우 break문을 의도적으로 생략 

* 예시 - 요일별 휴무 여부를 출력

<body>
<h1>의도적인 break문 생략</h1>
<hr>
<script>
let day = prompt("요일을 입력하시오");

switch(day){
case "월":
case "화":
case "수":
case "목":
case "금": // 월~금인 경우 동일한 코드 실행
document.write("<h3>" + day + "요일은 정상영업</h3>");
break;
case "토":
case "일": // 토, 일인 경우 동일한 코드 실행
document.write("<h3>" + day + "요일은 휴일</h3>");
break;
default:
document.write("<h3>요일을 잘못입력</h3>")
}
</script>
</body>














댓글

이 블로그의 인기 게시물

Spring Boot 6. 계시판 프로젝트

Spring Boot 2. Maria 데이터베이스 & Spring Data JPA

Django 10. DB 연동