[JavaScript ] 8장. 제어문

west·2024년 6월 20일
post-thumbnail

TIL(Today I Learned) 👩🏻‍💻

자바스크립트 학습의 바이블이라 할 수 있는 "모던 자바스크립트 Deep Dive"를 요약 정리하여, 이미 알고 있는 내용과 새롭게 알게 된 내용을 통해 자바스크립트의 기본기를 탄탄히 다지고자 합니다.

제어문(control flow statement)이란

조건에 따라 코드블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용
제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있음

8.1. 블록문

블록문(block statemnent/compound statement)이란

0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 혹은 블록으로 부름
자바스크립트는 블록문을 하나의 실행 단위로 취급함

// 블록문
{
	var foo = 10;
}

// 제어문
var x = 1;
if (x < 10) {
	x++;
}

// 함수 선언문
function sum (a, b) {
	return a + b;
}

8.2. 조건문

조건문(conditional statement)이란

주어진 조건식의 평가 결과에 따라 코드 블록의 실행 결정
조건식은 불리언 값으로 평가될 수 있는 표현식임

8.2.1. if…else 문

if (조건식) {
	// 조건식이 참이면 이 코드 블록 실행
} else {
	// 조건식이 거짓이면 이 코드 블록 실행
}
if (조건식1) {
	// 조건식1이 참이면 이 코드 블록 실행 
} else if (조건식2) {
	// 조건식2가 참이면 이 코드 블록 실행
} else {
	// 조건식1과 2 모두 거짓이면 이 코드 블록 실행 
}

대부분의 if…else문은 삼항 조건 연산자로 바꿔 쓸 수 있음

var x = 2;
var result;

if(x % 2) {
	result = '홀수';
} else {
	result = '짝수';
}

console.log(result); // 짝수

var result2 = x % 2 ? '홀수' : '짝수'; 
console.log(result2); // 짝수 

8.2.2. switch 문

switch (표현식) {
	case 표현식1: 
		switch 문의 표현식과 표현식1이 일치하면 실행될 문;
		break;
		
	case 표현식2:
		switch 문의 표현식과 표현식2가 일치하면 실행될 문;
		break;
		
	default:
		switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문;
}

8.3. 반복문

반복문(loop statement)이란

조건식의 평가 결과가 참인 경우 코드 블록을 실행 → 조건식을 다시 평가하여 여전히 참인 코드 블록을 다시 실행 → 조건식이 거짓일 때까지 반복

8.3.1. for문

for(변수 선언문 또는 할당문; 조건식; 증감식) {
	조건식이 참인 경우 반복 실행될 문;
}

8.3.2. while문

주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행함

var count = 0;

while(count < 3) {
	console.log(count); // 0 1 2 
	count++;
}

8.3.3. do…while문

do…while문은 코드 블록을 먼저 실행하고 조건식을 평가하기 때문에 코드 블록은 무조건 한 번 이상 실행됨

var count = 0;

do {
	console.log(count);
	count++;
} while (count < 3);

8.4. break 문

레이블 문, 반복문(for, for…in, for…of, while, do…while) 또는 switch 문의 코드 블록을 탈출함

// outer 라는 식별자가 붙은 레이블 for문
outer: for(var i = 0; i < 3; i++) {
	for(var j = 0; j < 3; j++) {
		// i + j === 3 이면 outer라는 식별자가 붙은 레이블 for 문을 탈출한다. 
		if(i + j === 3) break outer;
		console.log(`inner [${i}, ${j}]`);
	}
}

console.log('Done!');

레이블 문은 중첩된 for 문 외부로 탈출할 때 유용한데 이 외엔 권장 X

8.5. continue 문

반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킴

var string = 'Hello World';
var search = 'l';
var count = 0;

for(var i = 0; i < string.length; i++) {
	// 'l'이 아니면 현 지점에서 실행 중단하고 증감식 이동
	if(string[i] !== search) continue;
	count++;
}

console.log(count); // 3 
profile
산타 fe

0개의 댓글