제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다.
0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다,
//블록문
{
var foo = 10;
}
// 제어문
var x = 1;
if (x < 10) {
x++
}
//함수 선언문
function sum(a, b) {
return a + b;
}
if…else 문과 switch 문으로 두 가지 조건문을 제공한다.주어진 조건식의 **평가 결과(**논리적 참, 거짓)에 따라 실행할 코드 블록을 결정한다.
if(조건식) {
// 조건식이 참이면 이 코드 블록이 실행된다.
} else {
// 조건식이 거짓이면 이 코드 블록이 실행된다.
}
만약 if 문의 조건식이 불리언 값이 아닌 값으로 평가되면 JS 엔진에 의해 암묵적으로 불리언 값으로 강제 변환되어 실행할 코드 블록을 결정한다.
조건식을 추가하여 조건에 따라 실행될 코드 블록을 늘리고 싶으면 else if 문을 사용한다.
if(조건식1) {
// 조건식 1이 참이면 이 코드 블록이 실행된다.
} else if (조건식2) {
// 조건식 2이 참이면 이 코드 블록이 실행된다.
} else {
// 조건식 1과 조건식 2가 모두 거짓이면 이 코드 블록이 실행된다.
}
var num = 2;
var kind;
// if문
if( num > 0 ) {
kind = '양수'; // 음수를 구별할 수 없다
}
console.log(kind) // 양스
// if...else 문
if (num > 0) {
kind = '양수';
} **else {
kind = '음수'; // 0은 음수가 아니다.
}**
console.log(kind); // 양수
// if...else if문
if(num > 0) {
kind = '양수';
} **else if (num < 0) {
kind = '음수';
} else {
kind = '영';
}**
console.log(kind); // 양수
만약 코드 블록 내의 문이 하나 뿐이라면 중괄호를 생략할 수 있다.
var num = 2;
var kind;
if(num > 0) **kind = '양수';**
else if (num < 0) **kind = '음수';**
else **kind = '영';**
console.log(kind); // 양수
대부분의 if…else 문은 삼항 조건 연산자로 바꿔 쓸 수 있다.
// x가 짝수이면 result 변수에 문자열 '짝수'를 할당하고, 홀수이면 문자열 '홀수'를 할당
var x = 2;
var result;
if (x % 2) { // 2 % 2는 0이다. 이때 0은 false로 암묵적 강제 변환된다.
result = '홀수';
} else {
result = '짝수';
}
console.log(result); // 짝수
// 삼항 조건 연산자 적용
var x = 2;
// 0은 false로 취급한다.
var result = x % 2 ? '홀수' : '짝수';
console.log(result); // 짝수
경우의 수가 3가지인 경우(’양수’, ‘음수’, ‘영’)
var num = 2;
// 0은 false로 취급된다.
var kind = num ? **(num > 0 ? '양수' : '음수')** : '영';
// **삼항 조건 연산자는 값처럼 사용할 수 있다.**
// if…else문은 값처럼 사용할 수 없어 변수에 할당할 수 없다.
console.log(kind); // 양수