본문 바로가기

Javascript

자바스크립트 조건문과 반복문 - if, switch, for, while

1. 조건문

자바스크립트의 조건문은 Java와 동일하게 if와 switch가 있습니다. 문법도 비슷하니 짧게 정리하도록 하겠습니다.


1) if 문

if (조건식) {

    statements;

}


조건식이 참이면 { } 안의 문장들을 실행하게 됩니다. 자바와의 차이점이라면 조건식이 true, false가 명확하지 않더라도 가능하며 0, -0, "", '', NaN, null, undefined 은 false로 나머지는 true로 간주됩니다.

{ } 는 실행할 문장이 하나라면 생략할 수 있습니다.


if ('abc') {

    console.log('abc');   // abc 출력됨

}


조건이 더 있다면 else if 로 추가할 수 있고 모든 조건에 맞지 않을 때 실행하기 위한 else 문도 있습니다.


if (조건식1) {

    statements 1;

} else if (조건식2) {

    statements 2;

} else {

    statements 3;

}   


2) switch 문

표현식 (if 문의 조건식)의 값이 범위가 아닌 명확한 값으로 여러 개를 가지고 그에 따라 분기해야 할 경우라면 switch 문을 사용하는 것이 좋습니다.


문법은 다음과 같습니다. 표현식이 case의 값과 일치하면 해당 statements를 실행하게 되며 break를 만나면 switch 문을 벗어나게 됩니다.


switch (표현식) {

    case 값1 :

        statements 1;

        break;

    case 값2 :

        statements 2;

        break;

    default :

        statements 3;

}


만약 break를 의도적으로 생략하게 되면 계속해서 그 다음 case 문의 statements 까지 실행하게 됩니다. 아래의 예제는 조건에 맞는 1을 출력한 후 2까지 출력하게 됩니다.


var x = 1;


switch (x) {

    case 1 :

        console.log(1);

    case 2 :

        console.log(2);

        break;

    default :

        console.log('default');

}


default 문은 표현식이 모든 case에 일치하지 않은 경우 실행됩니다.


2. 반복문

자바스크립트의 반복문은 for 문과 와 while 문이 있습니다.


1) for 문

for 문은 2가지 방법으로 사용할 수 있는데, 그중 고전적인 방법의 문법은 다음과 같습니다.


for (초기화 ; 조건식 ; 증감식) {

    statements;

}



1부터 10까지 더하는 예를 보면 다음과 같습니다.


var sum = 0;

for (var i = 1 ; i <= 10 ; i++) {

   sum += i;

}


console.log(sum);   // 55


초기화식, 조건식, 증감식 모두 optional이라 개별적으로 필요에 따라 생략 가능합니다. 극단적으로는 모두 생략하여 for ( ; ; ) 가 가능하며 이런 경우 statements에서 빠져나오지 못하면 무한 반복되게 됩니다.


2번째 방법은 for/in (자바에서는 for each)라고 부르는 방법으로 아래처럼 사용합니다.


for (변수 in 객체) {

    statements;

}


배열의 각 요소를 더해서 문자열 (hello)를 만드는 예를 보도록 하겠습니다.


var chars = ['h', 'e', 'l', 'l', 'o'];

var hello = '';


for (var c in chars) {

    hello += chars[c];

}


console.log(hello);   // hello


2) while 문

while 문은 조건식이 true 인 동안 반복되며 for 문과 비슷하지만 초기화와 증감식이 없는 점이 다릅니다.


while (조건식) {

    statements;

}


while 문으로 1부터 10까지 더하는 예는 다음과 같습니다.


var sum = 0;

var i = 1;

while (i <= 10) {

   sum += i;

   i++;

}


console.log(sum);


마지막으로 do ~ while 에 대해서 알아 보겠습니다.

while 문은 조건을 먼저 검사한 후 true 인 경우 statements를 진행하지만, do ~ while 은 statements를 진행한 후 조건을 검사하는 점이 다릅니다. while 문 뒤에 세미콜론(;) 이 있는 것도 잊지 마세요.


do {

    statements;

} while (조건식) ;


이상으로 자바스크립트의 조건문, 반복문에 대해서 살펴봤습니다.