Language/Javascript

[Javascript] 자바스크립트 조건문 - if, switch

재은초 2023. 6. 20. 14:28
반응형

if 문

  • if 문은 표현식의 결과가 참(true)이면 주어진 실행문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다.
  • if 문에서 실행될 실행문이 한 줄 뿐이라면 중괄호{}를 생략할 수 있다.
if (표현식) {
    표현식의 결과가 참일 때 실행하고자 하는 실행문;
}
var x = 10, y = 20;

if (x == y) {
    document.write("x와 y는 같습니다");
}

if (x < y) {
    document.write("x가 y보다 작습니다");
}

if (x > y)
    document.write("x가 y보다 큽니다");

 

if / else 문

  • if 문과 같이 사용할 수 있는 else 문은 if 문의 표현식 결과가 거짓(false)일 때 주어진 실행문을 실행한다.
if (표현식) {
    표현식의 결과가 참일 때 실행하고자 하는 실행문;
} else {
    표현식의 결과가 거짓일 때 실행하고자 하는 실행문;
}
var x = 10, y = 20;

if (x == y) {
    document.write("x와 y는 같습니다.");
} else {
    if (x < y)
        document.write("x가 y보다 작습니다.");
    else 
        document.write("x가 y보다 큽니다.");
}

 

if / else if / else 문

  • 하나의 조건문 안에서 if 문과 else 문은 단 한 번만 사용될 수 있지만 else if 문은 여러 번 사용되어 다양한 조건을 설정할 수 있다.
if (표현식1) {
    표현식1의 결과가 참일 때 실행하고자 하는 실행문;
} else if (표현식2) {
    표현식2의 결과가 참일 때 실행하고자 하는 실행문;
} else {
    표현식1의 결과도 거짓이고, 표현식2의 결과도 거짓일 때 실행하고자 하는 실행문;
}
var x = 10, y = 20;

if (x == y) {
    document.write("x와 y는 같습니다.");
} else if (x < y) {
    document.write("x가 y보다 작습니다.");
} else {                                   // x > y인 경우
    document.write("x가 y보다 큽니다.");
}

 

삼항 연산자(ternary operator)에 의한 조건문

  • 삼항 연산자는 짧은 if / else 문 대신 사용할 수 있으며, 코드를 간결하게 만들 수 있다.
  • 물음표 ? 앞의 표현식에 따라 결괏값이 참이면 반환값 1을 반환하고 결괏값이 거짓이면 반환값 2를 반환한다.
표현식 ? 반환값1 : 반환값2
var x = 3, y = 5;
var result = (x > y) ? x : y   // x가 더 크면 x를, 그렇지 않으면 y를 반환
document.write("둘 중에 더 큰 수는 " + result + "입니다");

 

switch 문

  • switch 문은 if / else 문과 마찬가지로 주어진 조건 값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문으로, if / else 문보다 가독성 측면에서 더 좋다.
  • default 절은 조건 값이 어떤 case 절에도 해당하지 않을 때 실행되며, 반드시 존재해야 하는 것은 아니며 반드시 switch 문의 맨 마지막에 위치할 필요도 없다.
  • break 키워드는 전체 switch 문을 빠져나가게 해준다. 각 절에 break 키워드를 포함하고 있지 않으면 조건과 부합하는 절부터 끝까지 모두 실행되므로, case/default 절에는 반드시 break 키워드를 포함해야 한다.
switch (조건 값) {
    case 값1:
        조건 값이 값1일 때 실행하고자 하는 실행문;
        break;
    case 값2:
        조건 값이 값2일 때 실행하고자 하는 실행문;
        break;
    ...
    default:
        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 실행문;
        break;
}
var x = 10;

switch (typeof x) {
    case "number":
        document.write("변수 x의 타입은 숫자입니다.");
        break;
    case "string":
        document.write("변수 x의 타입은 문자열입니다.");
        break;
    case "object":
        document.write("변수 x의 타입은 객체입니다.");
        break;
    default:
        document.write("변수 x의 타입을 잘 모르겠네요...");
        break;
}
/* 여러 개의 case 절을 사용하여 여러 개의 조건을 한 번에 표현 */
var day = new Date().getDay();    // 오늘의 요일 (일요일: 0 ~ 토요일: 6)

switch (day) {
    case 1:         // 월요일인 경우
    case 2:         // 화요일인 경우
    case 3:         // 수요일인 경우
    case 4:         // 목요일인 경우
    default:        // 0부터 6까지의 값이 아닌 경우
        document.write("아직도 주말은 멀었네요... 힘내자구요!!");
        break;
    case 5:         // 금요일인 경우
        document.write("오늘은 불금이네요!!");
        break;
    case 6:         // 토요일인 경우
    case 0:         // 일요일인 경우
        document.write("즐거운 주말에도 열심히 공부하는 당신~ 최고에요!!");
        break;
}

 

Reference

반응형