JavaScript
제어문 93p~
- 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다.
- 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행되며 제어문을 사용하여 인위적으로 흐름을 제어할 수 있다.
- 코드의 실행 순서가 변경되면 단순히 위에서 아래로 순차적으로 진행하는 직관적인 코드의 흐름을 혼란스럽게 만들기 때문에 가독성을 해칠 수 있다는 단점이 있다.
8.1 블록문
- 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 한다.
블록문은 단독으로 사용할 수도 있지만 일반적으로 제어문이나 함수를 정의할 때 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12
{ var foo = 10; } // 블록문 var x = 1; if (x < 10) { x++; } // 제어문 function sum(a, b) { return a + b; } // 함수 선언문
8.2 조건문
- 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다.
if else문과switch문이 있다.
8.2.1 if…else 문
주어진 조건식의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
1 2 3 4 5
if (조건식) { // 조건식이 참이면 코드 블록 실행 } else { // 조건식이 거짓이면 코드 블록 실행 }
조건식을 추가하여 조건에 따라 실행될 코드 블록을 늘리고 싶으면
else if문을 사용한다.1 2 3 4 5 6 7
if (조건식1) { // 조건식 1이 참이면 코드 블록 실행 } else if (조건식2) { // 조건식 2가 참이면 코드 블록 실행 } else { // 조건식 1과 2가 모두 거짓이면 코드 블록 실행 }
if문과else문은 2번 이상 사용할 수 없지만else if문은 여러 번 사용할 수 있다.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
var num = 2; var kind; if (num > 0) { kind = "양수"; } console.log(kind); // 양수 if (num > 0) { kind = "양수"; } else { kind = "음수"; } console.log(kind); // 양수 if (num > 0) { kind = "양수"; } else if (num < 0) { kind = "음수"; } else { kind = "영"; } console.log(kind); // 양수
블록 내의 문이 하나뿐이라면 생략할 수 있다.
1 2 3 4 5 6
var num = 2; var kind; if (num > 0) kind = "양수"; else if (num < 0) kind = "음수"; else kind = "영";
대부분의
if ...else문은 삼항 조건 연산자로 바꿔 쓸 수 있다.1 2 3 4 5 6 7 8
var x = 2; var result; if (x % 2) result = "홀수"; else result = "짝수"; // 위의 코드는 아래와 같다. var result = x % 2 ? "홀수" : "짝수";
만약 경우의 수가 세 가지라면 다음과 같이 쓸 수 있다.
1
var kind = num ? (num > 0 ? "양수" : "음수") : "영";
8.2.2 switch문
- 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는
case문으로 실행 흐름을 옮긴다. case문은 상황을 의미하는 표현식을 지정하고 콜론으로 마치며, 그 뒤에 실행할 문들을 위치시킨다.switch문과 일치하는case문이 없다면 실행 순서는default문으로 이동되며.default문은 선택 사항으로, 사용할 수도 있고 사용하지 않을 수도 있다.1 2 3 4 5 6 7 8 9 10
switch(표현식){ case 표현식1 : switch 문의 표현식과 표현식1이 일치하면 실행될 문; break; case 표현식2 : switch 문의 표현식과 표현식2가 일치하면 실행될 문; break; default: switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문 }
if ...else문의 조건식은 불리언 값으로 평가되어야 하지만,switch문의 표현식은 문자열이나 숫자 값인 경우가 많다.if ...else문은 논리적 참,거짓으로 실행할 코드 블록을 결정하고,switch문은 논리적 참,거짓보다는 다양한 상황에 따라 실행할 코드 블록을 결정할 때 사용한다.
