제어문은 조건에 실행하거나 반복실행할때 사용한다.
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가진행되므로 가독성이 떨어질수있게된다.
'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
11장 원시값과 객체의비교 (0) | 2024.10.02 |
---|---|
10장 객체리터럴 (2) | 2024.10.02 |
7. 연산자 (0) | 2024.09.24 |
6. 데이터타입 (2) | 2024.09.22 |
5. 표현식과 문 (0) | 2024.09.22 |