모던 자바스크립트 8장

삼식이·2023년 1월 25일
0

자바스크립트

목록 보기
8/24

본 내용은 모던 자바스크립트 Deep Dive. 이웅모 저. 에 출처하며 자바스크립트에 숨참고 deep dive 합니다.

8. 제어문

  • 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다.

8.1 블록문

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

    • 블록문은 자체 종결성을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다.

8.2 조건문

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

8.2.1 if … else 문

  • if … else 문은 주어진 조건식(불리언 값으로 평가될 수 있는 표현식)의 평가 결과. 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.

    • if 문과 else 문은 2번 이상 사용할 수 없지만 else if 문은 여러번 사용할 수 있다.

    • 코드 블록 내의 문이 하나라면 중괄호 생략가능

    • 대부분의 if … else문은 삼항 조건 연산자로 바꿔 쓸 수 있다.

// 경우의 수가 세 가지인 경우 삼항 조건 연산자
var num = 2;

// 0은 false로 취급된다.
var kind = num? (num > 0 ? '양수' : '음수') : '영';

console.log(kind); // 양수 

8.2.2 switch 문

  • 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다.
// 월을 영어로 변환한다. (11 -> 'November')
var month = 11;
var monthName;

switch (month) {
	case 1: monthName = 'January';
	case 2: monthName = 'February';
	case 3: monthName = 'March';
	case 4: monthName = 'April';
	case 5: monthName = 'May';
	case 6: monthName = 'June';
	case 7: monthName = 'July';
	case 8: monthName = 'August';
	case 9: monthName = 'September';
	case 10: monthName = 'October';
	case 11: monthName = 'November';
	case 12: monthName = 'December';
	defualt: monthName = 'Invalid month';
}

console.log(monthName); // Invalid month
  • ‘Invalid month’가 출력된다. 표현식의 평가 결과와 일치하는 case문을 실행했지만, 실행 후 switch 문을 탈출하지 않고 switch 문이 끝날 때까지 이후의 모든 case문과 default 문을 실행했기 때문이다. 이를 폴스루라 한다.

    • break 문이 없다면 case 문의 표현식과 일치하지 않더라도 실행 흐름이 다음 case 문으로 연이어 이동한다. (default문은 break 문을 생략하는 것이 일반적이다.)

8.3 반복문

  • 반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다.

    • for문: 반복 횟수가 명확할 때

    • while문: 반복 횟수가 불명확할 때

8.3.1 for 문

  • for문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다.

8.3.2 while 문

  • while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다.

8.3.3 do … while 문

  • do…while문은 코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.
var count = 0;

// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
do {
	console.log(count) // 0 1 2
	count++;
} while (count < 3);

8.4 break 문

  • break은 *레이블 문, 반복문, switch 문의 코드 블록을 탈출한다.

    • *레이블 문: 식별자가 붙은 문
// foo라는 레이블 식별자가 붙은 레이블 문
foo: console.log('foo');
  • 레이블 문은 프로그램의 실행 순서를 제어하는 데 사용한다.

    • 레이블 문을 탈출하려면 break 문에 레이블 식별자를 지정한다.
// foo라는 식별자가 붙은 레이블 블록문
foo: {
	console.log(1);
	break foo; // foo 레이블 블록문을 탈출한다.
	console.log(2);
}

console.log('Done!');

8.5 continue 문

  • continue 문은 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동 시킨다. break 문처럼 반복문을 탈출하지는 않는다.
profile
I want to be coool and chilll developer...

0개의 댓글