언어/JavaScript

[자바스크립트 딥다이브] 8장 제어문

홍시_코딩기록 2024. 4. 2. 23:38

제어문

1. 블록문

{
	var foo = 10;
}

: 0개 이상의 문을 중괄호로 묶은 것.

 

 

2. 조건문

: 불리언 값으로 평가될 수 있는 표현식 (if … else문 , switch 문)

 

 

if … else 문
: 단순한 값이면 상항연산자 사용하는 것이 좋음.
: 만약 if문의 조건식이 불리언 값이 아닌 값으로 평가되면 js 엔진에 의해 암묵적으로 불리언 값으로 강제 변환
switch문
: 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문
: if … else 문은 논리적 참, 거짓으로 실행할 코드블록을 결정한다면
switch문은 다양한 상환(case)에 따라 실행할 코드블록을 결정할 때 사용.
var month = 11;
var monthName;

switch(month) {
	case 1: monthName = 'january';
	case 2: monthName = 'fabruary';
	...
}

 

 

3. 반복문

 

for문

 

 

while문

조건식의 평가결과가 참이면 코드 블록을 계속 반복

for문은 반복횟수가 명확할 때, while문은 반복횟수가 불명확할 때 사용.

var count = 0;

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

 

do … while 문

: 코드 블록을 먼저 실행하고 조건식 평가.

따라서 코드 블록은 무조건 한 번 이상 실행됨

var count = 0;

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

 

 

 

4. break문<aside>

: 레이블문, 반복문, switch문의 코드 블록을 탈출

❓ 레이블문이란?

식별자가 붙은 문, 프로그램의 실행 순서를 제어하는 데 사용. 레이블문을 탈출하려면 break문에 레이블 식별자 지정. 레이블문은 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!');

 

 

 

5. continue문

var string = 'hello world.'
var search = 'l';
var count = 0;

for (var i = 0; i < string.length; i++) {
	// string[i]가 l이 아니면 다음 반복으로 계속 진행하고 l이면 count++
  if (string[i] !==search) continue;
  count++;
}
console.log(count); //3

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

 

 

 

 

 

 

** 내용을 블로그에 옮기기가 힘들어서 다음부터는 노션으로만 정리하려 한다... 공부 열심히 해서 후기로 찾아와야지..