..

Search

19) 기타 제어문

19) 기타 제어문

기타 제어문


루프의 제어

일반적으로 표현식의 검사를 통해 루프로 진입하면, 다음 표현식을 검사하기 전까지 루프 안에 있는 모든 실행문을 실행합니다.

하지만 continue 문과 break 문은 이러한 일반적인 루프의 흐름을 사용자가 직접 제어할 수 있게 해줍니다.

label 문을 사용하면 continue 문과 break 문의 동작이 프로그램의 흐름을 특정 영역으로 이동시킬 수 있습니다.


label 문

label 문은 프로그램 내의 특정 영역을 식별할 수 있도록 해주는 식별자입니다.

label 문을 사용하면 continue 문과 break 문의 동작이 프로그램의 흐름을 특정 영역으로 이동시킬 수 있습니다.

 

label 문의 문법은 다음과 같습니다.

문법

label:

식별하고자 하는 특정 영역

 

다음 예제에서 라벨인 arrIndex는 그 이후에 나오는 for 문 전체를 가리키는 식별자로 사용되고 있습니다.

예제

arrIndex:

for (var i in arr) {

    document.write(i);

}


continue 문

continue 문은 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 표현식의 판단으로 넘어가게 합니다.

보통 반복문 내에서 특정 조건에 대한 처리를 제외하고자 할 때 자주 사용됩니다.

 

자바스크립트에서 continue 문은 다음과 같이 두 가지 형태로 사용할 수 있습니다.

문법

1. continue;

2. continue 라벨이름;

 

다음 예제는 1부터 100까지의 정수 중에서 3의 배수를 제외하고 출력하는 예제입니다.

예제

var exceptNum = 3;

for (var i = 0; i <= 100; i++) {

    if (i % exceptNum == 0// exceptNum의 배수는 출력하지 않음.

        continue;

    document.write(i + " ");

}

코딩연습 ▶

 

다음 예제는 라벨을 이용하여 구구단의 값이 홀수인 경우에만 출력하는 예제입니다.

예제

gugudan:

for (var i = 2; i <= 9; i++) {

    dan:

    for (var j = 1; j <= 9; j++) {

        if ((i*j) % 2 == 0)

            continue dan;

        document.write(i + " * " + j + " = " + (i*j) + "<br>");

    }

}

코딩연습 ▶


break 문

break 문은 루프 내에서 사용하여 해당 반복문을 완전히 종료시키고, 반복문 바로 다음에 위치한 실행문으로 프로그램의 흐름을 이동시킵니다.

즉, 루프 내에서 표현식의 판단 결과에 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용합니다.

 

자바스크립트에서 break 문은 다음과 같이 두 가지 형태로 사용할 수 있습니다.

문법

1. break;

2. break 라벨이름;

 

다음 예제는 배열에서 특정값을 가지고 있는 인덱스를 출력하는 예제입니다.

예제

var lectures = ["html", "css", "자바스크립트", "php"];

var topic = "자바스크립트";

for (var i = 0; i < lectures.length; i++) {

    if (lectures[i] == topic) {

        document.write(topic + " 과목은 " + (i + 1) + "번째 과목입니다.");

        break; // 원하는 값을 찾은 후에는 더 이상 for 문을 반복하지 않고 빠져나감.

    }

}

코딩연습 ▶

 

다음 예제는 라벨을 이용하여 구구단을 3단까지만 출력하는 예제입니다.

예제

gugudan:

for (var i = 2; i <= 9; i++) {

    dan:

    for (var j = 1; j <= 9; j++) {

        if (i > 3)

            break gugudan;

        document.write(i + " * " + j + " = " + (i*j) + "<br>");

    }

}

코딩연습 ▶


연습문제