조건문을 사용하면 조건에 따라 코드를 실행할 수도 있고 실행하지 않을 수도 있다. 이처럼 코드가 실행되는 흐름을 변경하는 것을 조건 분기라고 부른다.
if 조건문은 조건에 따라서 코드를 실행하거나 실행하지 않을 때 사용하는 구문이다. 비교 연산자와 논리 연산자를 활용해 조건을 만들고, 이 조건을 사용해 조건 분기를 만든다.
자바스크립트에서 가장 일반적인 조건문은 if 조건문이다. 조건문의 표현식의 값이 true면 중괄호 안의 문장을 실행하고 false면 문장을 무시한다.
if(불 값이 나오는 표현식) {
불 값이 참일 때 실행할 문장
}
자바스크립트는 서로 반대되는 상황을 표현하는 구문을 제공한다. 바로 else 구문인데, else 구문은 if 조건문 바로 뒤에 붙여서 사용한다. 이를 조합한 조건문을 if else 조건문이라 부르고 기본 형태는 다음과 같다.
if(불 값이 나오는 표현식) {
불 값이 참일 때 실행할 문장
}
else {
불 값이 거짓일 때 실행할 문장
}
조건문 안에 조건문을 중첩해 사용하는 것을 중첩 조건문이라고 한다.
겹치지 않는 3가지 이상의 조건으로 나눌 때 사용한다.
다음은 switch 조건문으로 홀수와 짝수를 구분하는 예제 코드이다.
switch(input % 2) {
case 0:
alert("짝수입니다.");
break;
case 1:
alert("홀수입니다.");
break;
default:
alert("숫자가 아닙니다.");
break;
}
break 키워드는 조건문이나 반복문을 빠져나가기 위해 사용하는 키워드이다.
switch 조건문의 괄호 안에는 비교할 값을 입력한다. 이때 입력한 값을 기준으로 특정 코드를 실행한다. 만약 표현식과 case 키워드 옆의 표현식이 같다면 case 키워드 바로 다음에 오는 문장을 실행한다.
default 키워드는 생략할 수 있다. break 키워드에 의해 중간에 인터럽트되지 않는다면 자동으로 실행된다.
불 표현식 ? 참일 때의 결과 : 거짓일 때의 결과
자바스크립트에는 조건문과 비슿한 역할을 하는 조건부 연산자가 존재한다. 유일하게 자바스크립트에서 항을 3개 갖는 연산자라 삼항 연산자라 부르기도 한다.
const input = prompt('숫자를 입력해주세요.', '');
const number = Number(input);
const result = (number >=0) ? '0 이상의 숫자입니다.' : '0보다 작은 숫자입니다.'
alert(result);
자바스크립트에서는 논리 연산자의 특성을 조건문으로 사용할 수 있다.
true || console.log("실행될까요?");
출력 :
true
논리합 연산자로 평가를 진해행할 때, 자바스크립트는 좌변의 참(true)이 확실 할 때, 추가 연산을 진행하지 않는다.
이를 단축 평가라 한다.
false || console.log("실행될까요?");
출력 :
실행될까요?
undefined
좌변의 값이 false이기 때문에 우변까지 실행된다.
false && ~~~~
논리곱 연산자는 양변이 모두 참일 때만 참이기 때문에 다음 표현식은 항상 거짓이다. 단축 평가로 우변또한 평가하지 않는다.