싯벨트 2025. 3. 13. 20:03
728x90

제어문(control flow statement)조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용합니다. 블록문은 0개 이상의 문을 중괄호로 묶은 것으로 코드 블록, 블록이라고도 합니다. 자바스크립트는 블록문을 하나의 실행단위로 취급합니다.

조건문(conditional statement)

조건문에는 if…else문과 switch문이 있습니다.

if…else문

if…else문은 3가지 형태로 사용할 수 있습니다. if만 사용하여 해당 조건이 참인 경우를 확인하거나 if, else를 사용하여 참인 경우와 거짓인 경우 실행할 블록문을 설정하거나 if, else if, else 를 사용하여 여러 가지 조건에 따른 실행 코드를 설정할 수 있습니다. 이때 블록문이 간결할 경우, 중괄호를 생략할 수도 있습니다.

if (x > 0) return true;

if (x > 0) {
    return true;
} else {
    return false;
}

if (x > 0) {
    return "positive";
} else if (x < 0) {
    return "negative";
} else {
    return "zero";
}

switch 문

switch문은 조건의 대상이 될 표현식을 적어주고, case 키워드에 값을 적어줘서 조건의 대상이 값과 일치할 때 실행할 문을 작성합니다. 주의할 점은 case 마다 break 키워드를 써서 반복문을 탈출하게 해야 하며, 앞선 케이스에 해당되지 않을 경우 실행될 default를 적는 경우에는 break를 생략할 수 있습니다. 또한 폴스루(fall through)를 활용해서 여러개의 case문을 하나의 조건으로 사용할 수도 있습니다.

const arr = new Array(10).fill(0).map((_, i) => i + 1);

for (const el of arr) {
    let position = "";
    switch (el) {
        case 1:
            position = "start";
            break;
        case 10:
            position = "end";
            break;
        default:
            position = "middle";
    }
    console.log("position: ", position);

    // 폴스루 사용
    let isEven = false;
    switch (el) {
        case 2:
        case 4:
        case 6:
        case 8:
        case 10:
            isEven = true;
            break;
        default:
            isEven = false;
    }
    console.log("isEven: ", isEven);
}

반복문(loop statement)

for 문

가장 일반적으로 사용하는 반복문입니다. 조건이 거짓으로 평가될 때까지 블록문을 반복합니다. for() 내부에 변수 선언 또는 할당문, 조건식, 증감식을 넣어주고 세미콜론(;)으로 구분해줍니다.

for(let i = 0; i < 3; i++){
	console.log(i)
}

while 문

조건이 참인 경우 블록문을 반복합니다. 반복 횟수가 불분명할 때 주로 사용합니다. 조건이 거짓인 경우 블록문을 실행하지 않고 종료합니다. count가 0일 때는 조건이 거짓이므로 블록문이 실행되지 않습니다.

let count = 3;
while (count > 0) {
    console.log(count);
    count--;
}

do … while 문

do에 있는 블록문을 무조건 한 번 실행하고, 이후 while 조건문이 참인 경우만 실행합니다. 아래 코드에서 조건문에 따르면 1, 2만 만족하지만 do에 있는 블록문을 무조건 실행하므로 0도 출력이 됩니다.

let count = 0;
do {
    console.log(count);
    count++;
} while (count > 0 && count < 3);

break

모든 코드 블록이 아니라 반복문, switch문의 코드 블록을 탈출합니다.

continue

반복문의 증감식으로 실행 흐름을 이동시켜서 실행합니다.

참고자료

  • 모던 자바스크립트 Deep Dive