[JavaScript] 자바스크립트의 제어문

if문

if문은 if (condition) statement1 else statement2으로 사용한다. condition에는 조건이 들어가며, 조건이 성립할 경우 statement1을 수행하고 그렇지 않다면 statement2를 수행한다. 다음 예시를 보자.

1
2
3
4
5
6
7
8
9
if(i == 20180308) {
alert("비투비 정일훈 솔로 데뷔");
}
else if(i == 20180319) {
alert("헤헤 내 생일이다");
}
else {
alert("덕계못 타파");
}

위의 예시에서는 else if를 사용했는데, if의 조건은 성립하지 않지만 else if의 조건을 성립할 경우 else 대신 수행한다.


switch-case문

if문과 비슷하며 다음과 같이 사용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
var i = 25
switch(i) {
case 25:
alert("25");
break;
case 35:
alert("35");
break;
case 45:
alert("45");
break;
}

라인 5, 8, 11에 있는 break문을 넣지 않는다면 break를 만나는 곳까지 쭉 실행하게 된다. 고로, switch-case문에서는 break를 잊지 않도록 조심해야 한다.


do-while문

do-while은 종료 조건을 평가하기 전 루프를 실행한다. 루프 본문은 최소 한 번 이상 실행된다. 실제로는 다음과 같이 사용한다.

1
2
3
4
var i = 0;
do {
i += 2;
} while(i < 10);

i += 2는 종료 조건인 i < 10을 실행하기 전 먼저 수행된다.


while문

while은 조건을 먼저 평가하고 그 이후 루프를 실행한다. 실제 사용은 다음과 같다.

1
2
3
4
var i = 0;
while(i < 10) {
i += 2;
}

이 예제에서는 i < 10일 때에만 i += 2가 실행된다.


for문

for문도 평가 후 루프를 실행한다. for문에서는 루프에 들어가기 전 변수를 초기화할 수 있으며, 루프 후의 코드도 지정할 수 있다. 실제 사용은 다음과 같이 한다.

1
2
3
4
var count = 10;
for (var i = 0; i< count; i++) {
alert(i);
}

변수 초기화는 2 라인의 var i = 0이고, 루프 후의 코드는 동일 라인의 i++라고 할 수 있다. 변수 초기화, 조건, 그리고 루프 후의 코드는 생략 가능하다. 만약 다음과 같이 모두를 생략하면 어떻게 될까?

1
2
3
4
var message = "엄청나게 졸리다";
for (;;) {
alert(message);
}

for (;;)무한 루프[1]를 의미한다. 이 코드는 무한정 message가 담긴 alert를 띄우게 된다.


for-in문

객체의 프로퍼티를 순회하는데 사용하는 엄격한 반복문이다. 문법은 다음과 같다.

1
2
3
for (변수 in 객체) {
구문
}

예제를 보자.

1
2
3
4
var array = [10, 11, 12];
for (property in array){
console.log("name: " + property + "; value: " + array[property]);
}

위 코드의 실행 결과는 다음과 같다.

1
2
3
name: 0; value: 10
name: 1; value: 11
name: 2; value: 12


이 포스트의 모든 내용은 프론트엔드 개발자를 위한 자바스크립트 프로그래밍(인사이트) 책을 참고하여 작성되었습니다.




  1. while(1), while(true), for(;;)는 모두 무한 루프이다. ↩︎

Share