brother_stone
2020. 5. 2. 20:52
점프문의 종류
-
break
-
continue
-
return
-
throw
이번에는 break, continue, 라벨문에 대해 알아보자
7.4.1 라벨문
| 라벨 이름: 문장 |
자바스크립트에서 라벨로 점프할 수 있는 문장은 break문과 continue문뿐이며,
break문은 switch문과 반복문, continue문은 반복문 안에서만 사용할 수 있기 때문에
따라서 실제로 라벨을 붙여 사용할 수 있는 문장은 switch문과 반복문뿐임.
7.4.2 break문
-
switch문, 반복문에서 사용
-
break문 실행 시, 가장 안쪽에 있는 반복문이나 switch문에서 빠져나옴
break문에서 점프할 라벨 지정 시
| break 라벨 이름; |
라벨을 지정한 break문을 실행하면 라벨이 붙은 문장 끝으로 점프함
그래서 주로 중첩된 반복문의 안쪽 반복문 안 또는 전체 반복문을 빠져나올 때 사용함
e.g.
|
var a = [2, 4, 6, 8, 10];
var b = [1, 3, 5, 6, 9, 11];
loop: for(var i = 0; i < a.length; i++){
for(var j = 0; j < b.length; j++){
if( a[i] == b[j]){
break loop; //(대충 loop라는 라벨이 붙은 문장에서 빠져나가라 라는 뜻)
}
}
}
console.log("a[" + i + "] = b[" + j + "]"); // a[2] = b[3]
|
7.4.3 continue문
-
continue 문을 실행하면 반복문 실행을 멈추고 반복을 새로 시작한다.
continue문에서 점프할 라벨 지정 시
|
continue 라벨 이름; |
라벨을 지정한 continue문을 실행하면 라벨이 붙은 문장 처음(재확인)으로 점프함
다음 표는 continue문장이 반복을 새로 시작할 때의 동작에 대한 설명이다.
| while문 | 반복문의 처음으로 되돌아가서 조건식을 다시 평가. 그 결과가 true면 반복문을 처음부터 실행한다. |
| do/while문 | 중간을 건너뛰고 반복문의 마지막 조건식을 평가. 그 결과가 true면 반복문을 처음부터 실행한다. |
| for문 | 반복식을 실행한 후에 조건식을 평가. 그 결과가 true면 반복문을 이어시 실행한다. |
| for/in문 | 반복문의 처음으로 되돌아감. 지정한 변수에 할당되어 있는 프로퍼티의 다음 프로퍼티를 대상으로 작업 시작. |
e.g. 배열 a 안에서 값이 0 이상인 요소의 값을 모두 더하는 프로그램
|
var a = [
2,
5,
-1,
7,
-3,
6,
9
];
for (var i = 0, sum = 0; i < a.length; i++) {
if (a[i] < 0)
continue; //이 때 continue는 a의 배열 요소 중 음수를 더하지 않기 위해 사용되었다.
sum = sum + a[i];
}
console.log(sum); // → 29
|
e.g. 모든 요소의 값이 10 이하인 배열을 찾고, 각 배열 요소의 평균값을 구한 후 최대 평균값을 구하는 프로그램.
|
let a = [
[
2, 4, 6, 8
],
[
1, 5, 12, 3
],
[
7, 6, 5, 8
],
[
5, 15, 3, 4
],
[
3, 2, 9, 4
]
];
let max = Number.NEGATIVE_INFINITY;
loop1: for (i = 0; i < a.length; i++) {
let average = 0;
for (j = 0; j < a[i].length; j++) {
if (a[i][j] > 10)
continue loop1; // 10이상인 요소가 있는 배열을 건너뛰기 위해 라벨을 지정한 continue를 실행함.
average = average + a[i][j];
}
average = average / a[i].length;
console.log("i=" + i + ":평균값=" + average);
if (max < average) {
max = average;
}
}
console.log("최대 평균값=" + max);
//i = 0 : 평균값 = 5
//i = 2 : 평균값 = 6.5
//i = 4 : 평균값 = 4.5
//최대 평균값 = 6.5
|