[모던 자바스크립트 Deep Dive] 8장 제어문

dayannne·2023년 3월 7일
1
post-thumbnail

제어문

  • 조건문
  • 반복문

8.1 블록문

0개 이상의 문을 중괄호로 묶은 것. 코드 블록 또는 블록이라고도 부름.

  • 하나의 실행 단위로 취급
    제어문이나 함수를 정의할 때 사용
  • 끝에 세미콜론;붙이지 않는다.
// 일반 블록문
{
	var foo = 10;
}
// 제어문
var x = 1;
if (x<10){
	x++;
}
// 함수 선언문
function sum(a,b){
	return a + b;
}  

8.2 조건문

주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정한다.
(true or false)

8.2.1 if~else문

if(조건식){
	//조건식이 참이면 이 코드 블록이 실행된다.
}else{
	//조건식이 거짓이면 이 코드 블록이 실행된다.
}
if(조건식1){
	//조건식1이 참이면 이 코드 블록이 실행된다.
}else if(조건식2){
	//조건식2이 거짓이면 이 코드 블록이 실행된다.
}else{
	//조건식1과 조건식2 모두 거짓이면 이 코드 블록이 실행된다.
}
//삼항 연산 조건자 - 홀수 또는 짝수 찾기
var x = 2; // 
var result = x % 2 : '홀수' : '짝수'; // 결과값 0이 false로 취급된다.

//삼항 연산 조건자 - 홀수 또는 짝수 또는 '0' 찾기
var kind = num ? (num > 0 ? '양수' : '음수') : '0' ;

8.2.2 switch문

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

switch 문의 표현식과 일치하는 case문이 없다면 실행 순서는 default 문으로 이동한다.


8.3 반복문

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

8.3.1 for 문

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

for (변수 선언문 또는 할당문; 조건식; 증감식){	
	조건식이 참인 경우 반복 실행될 문;
}
for (var i = 0; i < 2; i++){
	console.log(i)
} // --> 0, 1 출력
  • 만약 어떤 식도 사용하지 않았을 때에는 무한루프가 된다.

for (;;) { ... }

  • 중첩해 사용할 수 있다.

8.3.2 while 문

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

var count = 0;

while (count < 3) {
	console.log(count);
  	count++;
} // --> 0, 1, 2 출력
  • 조건식의 평가 결과가 언제나 참이면 무한루프가 된다.
    while (true) { ... }

  • 무한루프에서 탈출하기 위해서는 코드 블록 내에 if문으로 탈출 조건을 만들고 break문으로 코드블록을 탈출한다.

var count = 0;

while (true) {
	console.log(count);
  	count++;	
	if (count === 3) break;
} // --> 0, 1, 2 출력

8.3.3 do~while 문

코드블록을 먼저 실행하고 조건식을 평가한다. 코드블록은 무조건 한 번 이상 실행된다.

var count = 0;

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

8.4 break문

  • 레이블 문(식별자가 붙은 문, 코드 실행 순서를 제어)foo: - {console.log('foo')},
  • 반복문(for, while, do~while),
  • switch 문
    의 코드 블록을 탈출한다.
    이 코드 블록들 외에 break 문을 사용하면 SyntaxError가 발생한다.

8.5 continue문

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


출처 : 이웅모, 『모던 자바스크립트 deep dive』, 위키북스(2020), p93-107.

profile
☁️

0개의 댓글