본문 바로가기
javascript

if, debugger, while, do-while, for, break, continue, switch

by rami_ 2021. 9. 6.

if

형태 : if (표현식) 문장 1

        if(표현식) 문장 1 else 문장2

조건에 따른 처리

 먼저 표현식을 평가.

 평가결과를 true/false로 변환

 true이면 문장 1 실행, false면 문장 2 실행.

 

debugger

debugger 위치에서 실행 멈춤.

 브라우저의 개발자 도구 창이 열려있을 때만 멈춤.(F11누르면 다음으로 넘어감)

 열려있지 않으면 멈추지 않음.

 ES5부터 지원.

 

 

while

형태 : while (표현식) 문장

표현식의 평가결과가 false가 될때까지 문장을 반복하여 실행, 반복이 종료되는 조건 필요.

 

do ~ while

형태 : do 문장 while(표현식)

처리방법은 while문과 같음. 단 do문을 먼저 실행.

var k = 0;

do {

  log("do:", k);

  k++;

} while (k<3){

 log("while:", k);

}; //while이 true일때 do문장을 실행하러 감. k=0이면 k++ 에서 1이 되고 while문 실행. 3보다 작은 숫자이므로 true.

그러면 do문 실행. 결과로 "do:1", 동일하게 k++ 에서 2가 산출. do문 실행하여 결과로 "do:2", k가 2일 때는 while문이 false가 되고 블록을 실행하게 됨. 결과로 "while:3"

 

 

for()

형태 : for(초기값 opt; 비교 opt; 증감opt) 문장

초기값은 한번만 실행.

2번째의 비교 표현식의 평가결과가 true인 동안 문장을 반복실행.

비교opt이 false가 되는 문장 필요.

for ( var k = 0; k<2; k++){

log(k);

}; // 1,2

for문에 초기값을 작성하지 않더라도 ; 는 작성해야함

var k= 0;

for( ; k<3;){

log(k);

k++

};

 

break

형태 : break; break 식별자;

반복문 종료

for, for~in, while, do~while, switch에서 사용

 

continue

형태 : continue; continue 식별자;

반복문의 처음으로 분기(k++로 감).

for, for~in, while, do~while에서 사용.

for ( var k = 0; k<5; k++) {

 if ( k === 2 || k===3){

  continue;

 };

 log(k);

}; // k가 2나 3이면 처음으로 돌아가 반복됨. 2,3은 출력되지 않고 0, 1, 4 출력됨.

 

switch

형태 : switch (표현식) {

 case 표현식 : 문장리스트opt

 defalut : 문장리스트opt

 };

switch 표현식의 평가값과 일치하는 case문 수행.

var exp = 1;

switch(exp){

 case 1 : log(100);

 case 2 : log(200);

 }; //exp에 1을 넣고 블록 실행함. exp가 1이므로 case 1 실행함. break가 없으면 case2도 실행함. 결과는 100, 200

 

break 사용

var exp = 1;

switch(exp){

 case 1 : log(100);

 break; 

case 2 : log(200);

 }; //case1을 실행한 다음 break가 있으므로 switch문을 빠져나오게 되며 case2는 실행하지 않음.

 

일치하는 case가 없으면 default 수행

var exp = 7, value;

switch(exp) {

 case 1 : value = 100;

 default : value = 700;

 case 2 : value = 200;

};

log(value); // 일치하는 case가 없어 default 수행함. 이때 밑에 있는 case2도 실행함. 결과값은 200

 

or(||) 형태

var exp = 3;

switch(exp){

 case 2 :

 case 3 : log(100);

}; //100