7장 제어 구문
Updated:
제어 구문
문장은 일반적으로 위에서 아래 방향으로 작성한 순서대로 실행되는데 이를 순차적 실행이라고 한다. 순차적 실행 흐름을 변화시키는 문장을 제어 구문이라고 한다.
분류 | 제어 구문 | 설명 |
---|---|---|
조건문 | if/else 문, switch 문, try/catch/finally 문 | 조건에 따라 처리를 분기 |
반복문 | while 문, do/while 문, for 문, for/in 문, for/of 문 | 조건을 만족하면 처리를 반복 실행 |
점프문 | break 문, continue 문, return 문, throw 문 | 프로그램의 다른 위치로 이동 |
조건문
조건문은 조건식의 값에 따라 실행 흐름을 분기한다.
if/else 문
if/else 문의 사용법은 크게 두가지로 나눌 수 있다.
① if (조건식) 문장
② if (조건식) 문장 1 else { 문장 2 }
switch 문
switch 문을 사용하면 분기점 여러 개를 더욱 간결하게 표현할 수 있다. switch 문의 사용법은 다음과 같다.
switch(표현식) {
case 표현식 1 : 실행문 1
case 표현식 2 : 실행문 2
...
case 표현식 n : 실행문 n
default: 실행문 n + 1
}
반복문
반복문은 일정한 처리를 한 다음 원래 위치로 돌아가 똑같은 처리를 반복하는 처리를 표현한다.
while 문
while 문은 조건만 맞아떨어지면 일정한 처리를 계속 반복해서 실행한다. while 문의 사용법은 다음과 같다.
while (조건식) 문장
while 문 안에서는 break 문과 continue 문을 사용할 수 있다.
• while 문 안에서 break를 실행하면 while 문에서 빠져나온다.
• while 문 안에서 continue를 실행하면 while 문의 시작 부분으로 되돌아 간다.
do/while 문
do/while 문은 반복해서 실행할지를 마지막 부분에서 판단한다. do/while 문의 사용법은 다음과 같다.
do 문장 while(조건식);
do/while 문의 끝에는 반드시 세미클론이 붙는다. while 문과 마찬가지로 do/while 문 안에서는 break 문과 continue 문을 사용할 수 있다.
for 문
반복문은 대부분 세 가지 공통점이 있다. 바로 반복 조건의 초기화 작업, 반복문의 조건식, 반복 작업이 하나 끝났을 때 반복 조건을 갱싱하는 작업인다. for 문은 이 세 가지 작업을 명시적으로 한곳에 모아서 표기한다. for 문의 사용법은 다음고 같다.
for( 초기화 식; 조건식; 반복식) 문장
초기화 식을 입력하는 부분에 쉼포 연산자를 사용하면 표현식을 여러 개 작성할 수도 있다.
for(var i = 1, sum = 0; i <= 10; i++){
sum += i;
}
초기화 식, 조건식, 반복식은 모두 생략할 수 있다. 단, 소괄호 안에 있는 세미클론만큼은 생략할 수 었는데 이는 끝없이 반복하겠다는 뜻이 된다.
for(;;){
if( confirm("종료하시겠습니까?")) break;
}
for 문은 루프 카운터 변수인 i와 j의 값을 한꺼번에 바꾼다.
for(var i=0; j=10; i<10; i++, j--) {...}
for/in 문
for/in 문은 객체 안의 프로퍼티를 순회하는 반복문이다. for/in 문의 사용법은 다음과 같다.
for (변수 in 객체 표현식) 문장
for/in 문이 실행되면 먼저 객체 표현식을 평가한다. 객체 표현식이 null 또는 undefined로 평가되면 for/in 문을 빠져나와 다음 작업으로 이동한다. 객체 표현식이 객체로 평가되면 객체의 프로퍼티 이름이 차례대로 변수에 할당되고 각각의 프로퍼티에 대해서 문장이 한 번씩 실행된다.
var obj = {a:1, b:2, c:3};
for(var p in obj){
console.log("p = " + p);
}
이 코드를 실행하면 다음처럼 출력된다.
p = a
p = b
p = c
for/in 문은 프로퍼티 이름만 꺼내 변수에 할당한다. 따라서 반복문 안에서 프로퍼티 값을 가져오려면 괄호 연산자를 사용해야 한다.
var obj = {a:1, b:2, c:3};
for(var p in obj){
console.log("obj." + p + " = " + obj.[p]);
}
이 코드를 실행하면 다음처럼 출력된다.
obj.a = 1
obj.b = 2
obj.c = 3
다른 반복문과 마찬가지로 반복문 안에서 문장을 여러 개 실행하려면 여러 문장을 블록으로 묶어서 블록 문장으로 만든다. 또한 for/in 문 안에서도 break 문과 continue 문을 사용할 수 있다.
점프문
점프문은 프로그램의 다른 위치로 이동하는 제어 구문이다. 자바스크립트에서 사용할 수 있는 점프문에는 break 문, continue 문, break 문, continue 문, return 문, throw 문이 있다.
라벨문
자바스크립트에서는 모든 문장에 라벨을 붙일 수 있으며 사용법은 다음과 같다.
라벨 이름 : 문장
라벨 이름에는 모든 식별자를 사용할 수 있다. 자바스크립트에서 라벨로 점프할 수 있는 문장은 break 문과 continue 문뿐이다.
break 문
break 문의 사용법은 다음과 같다.
break;
break 문에는 점프할 라벨을 지정할 수 있는데 사용법은 다음과 같다.
break 라벨 이름;
라벨을 지정한 break 문을 실행하면 라벨이 붙은 문장 끝으로 점프한다.
continue 문
continue 문의 사용법은 다음과 같다.
continue;
continue 문에는 점프할 라벨을 지정할 수 있는데 사용법은 다음과 같다.
continue 라벨 이름;
continue 문을 실행하면 반복문 실행을 멈추고 새로 시작한다. 이때의 동작은 반복문에 따라 달라진다.
반복문 | continue 문장이 반복을 새로 시작할 때의 동작 |
---|---|
while 문 | 반복문의 처음으로 되돌아가서 조건식을 다시 평가한다. 그 결과가 true면 반복문을 처음부터 실행한다. |
do/while 문 | 중간을 건너뛰고 반복문의 마지막 조건식을 평가한다. 그 결과가 true면 반복문을 처음부터 실행한다. |
for 문 | 반복식을 실행한 후에 조건식을 평가한다. 그 결과사 true면 반복문을 이어서 실행한다. |
for/in 문 | 반복문의 처음으로 되돌아간다. 지정한 변수에 할당되어 있는 프로퍼티의 다음 프로퍼티를 대상으로 작업을 시작한다. |
댓글남기기