윤랩용 2024. 9. 27. 09:59

제어문은 조건에 실행하거나 반복실행할때 사용한다.

8.1 블록문

블록문은 0개이상의 문을 중괄호로 묶은것으로 코드블록이라 부른다.

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

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

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

 

8.2 조건문

8.2-1 if…else 문

var num 2;
var kind;

// if문
if ( num > 0 ) {
	kind = '양수';
} else if {
	kind = '음수';
} else {
	kind = '영';
}
console.log(영); // 양수

8.2-2 switch 문

다양한 case에 실행할 코드블록을 결정할 때 사용한다.

var month = 11;
var monthName;

switch( month ) {
	case 1: monthName = 'january';
		break;
	case 2: monthName = 'February';
		break;
	case 3: monthName = 'March';
		break;
	case 4: monthName = 'April';
		break;	
	default: monthName = 'invalid month';
}

default 문에는 break문을 생략한다.

 

8.3 반복문

8.3-1 for 문

for( var i=0; i<2; i++ ){
	console.log(i);
}

var i = 0 선언문이 실행후

i ++ 하면서

i < 2 까지 반복하는 문이다.

8.3-2 while 문

반복횟수가 불명확할때 사용한다.

var count = 0;

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

// 무한루프 while문
while (true) {
	count ++;
	if(count == 4) break;	// break로 탈출
}

8.3-3 do… while 문

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

var count = 0;

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

8.4 break문

break 문은 코드 블록을 탈출한다.

레이블문, 반복문 switch문의 코드블록 외에 break문을 사용하면 syntaxError가 발생한다.

var string = 'imsleepy';
var search = 's';
var index;

for(var i=0; i<string.length; i++){
	if(string[i] === search){
		index=i;
		break; // 반복문탈출한다.
	}
}

console.log(index); // 2
console.log(string.indexof(search)); // 2 , 메서드사용해도 같은동작됨

8.5 continue 문

반복문을 탈출하진않고 , 현지점에서 중단하고 반복문의 증감식으로 이동한다.

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

for(var i = 0;  i<string.length; i++){
	if(string[i] !== search) continue;
		count++;  // continu문이 실행하면 이문은 실행되지 않는다.
}

console.log(count); // 3

만약에 continue문을 사용하지않는다면?

for(var i = 0;  i<string.length; i++){
	if(string[i] !== search) {
		count++;
		
		//code
		//code
		//code
	}
}

continue를 사용했을땐, if 밖의문에서 분리되게 코드를 만들수있는반면

if 문안에서 code가진행되므로 가독성이 떨어질수있게된다.