루프의 제어
일반적으로 표현식의 검사를 통해 루프로 진입하면, 다음 표현식을 검사하기 전까지 루프 안에 있는 모든 실행문을 실행한다. 하지만 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 + " ");
}
실행 결과
1 2 4 5 7 8 10 11 13 14 16 17 19 20 22 23 25 26 28 29 31 32 34 35 37 38 40 41 43 44 46 47 49 50 52 53 55 56 58 59 61 62 64 65 67 68 70 71 73 74 76 77 79 80 82 83 85 86 88 89 91 92 94 95 97 98 100
다음 예제는 라벨을 이용하여 구구단의 값이 홀수인 경우에만 출력하는 예제다.
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>");
}
}
실행 결과
3 * 1 = 3
3 * 3 = 9
3 * 5 = 15
3 * 7 = 21
3 * 9 = 27
5 * 1 = 5
5 * 3 = 15
5 * 5 = 25
5 * 7 = 35
5 * 9 = 45
7 * 1 = 7
7 * 3 = 21
7 * 5 = 35
7 * 7 = 49
7 * 9 = 63
9 * 1 = 9
9 * 3 = 27
9 * 5 = 45
9 * 7 = 63
9 * 9 = 81
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번째 과목입니다.
다음 예제는 라벨을 이용하여 구구단을 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>");
}
}
실행 결과
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 대입 연산자(assignment operator) (0) | 2022.06.30 |
---|---|
[JavaScript] 산술 연산자 (0) | 2022.06.30 |
[JavaScript] 반복문(iteration statements) (0) | 2022.06.29 |
[JavaScript] 조건문 (0) | 2022.06.29 |
[JavaScript] 타입 변환 (0) | 2022.06.29 |