기타 제어문

2022. 12. 30. 17:17Javascript/TCP school

루프의 제어

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

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

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


label 문

프로그램 내의 특정 영역을 식별할 수 있도록 해주는 식별자

continue 문과 break 문의 동작이 프로그램의 흐름을 특정 영역으로 이동시킬 수 있음

 

문법
label:
식별하고자 하는 특정 영역

예제

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

arrIndex:
for (var i in arr) {
    document.write(i);
}

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>");
    }
}
<!DOCTYPE html>
<html lang="ko">

<head>
	<meta charset="UTF-8">
	<title>JavaScript Etc Control Statement</title>
</head>

<body>

	<h1>continue 문</h1>

	<script>
		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>");
			}
		}
	</script>
	
</body>

</html>

JavaScript Etc Control Statement

continue 문



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>");
    }
}

코딩연습 ▶

 

참고

http://www.tcpschool.com/javascript/js_control_etc

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

'Javascript > TCP school' 카테고리의 다른 글

배열의 활용  (0) 2022.12.31
배열의 기초  (0) 2022.12.30
반복문  (0) 2022.12.30
조건문  (0) 2022.12.29
기타 연산자  (0) 2022.12.28