티스토리 뷰

Java

[JAVA]기타제어문(break,continue)

TreeBomb 2023. 11. 30. 17:01

기타제어문이란?

일반적으로 조건식의 검사를 통해 반복문 안으로 진입하게 되면 반복문 안에 있는

모든 코드들을 수행하게 되는데 이때 기타제어문을 통해 반복문 자체의 흐름을 제어할 수 있다.

 

기타제어문의 특징

- 반복문 안에 작성을 해야 한다.

- 기타제어문 밑에는 어떠한 코드도 올 수 없다.  (에러가 발생하진 않지만 의미가 없다.)

 

기타제어문의 종류

- break

- continue

 

break

반복문 안에서 break를 만나게 되면 가장 가까운 반복문을 빠져나오고 다음 코드를 진행시킨다.

 

코드

int n = 1;
	while(true) {
		System.out.println(n);
		n++;
		if(n > 5) break;
	}

결과

1
2
3
4
5

while문 조건에 true를 입력하게 되면 무한 루프에 걸리게 되지만 break문을 통해 강제로 빠져나오게 할 수 있다.

 

label break

일반적은 break는 가장 가까운 반복문을 빠져나오지만 label이란 것을 활용해서 원하는 반복문을 빠져나올 수 있다.

 

라벨의 형태

라벨명 : 반복문 {

    break 라벨명;

}

 

 

코드

abc:for(int i = 1;i <= 3;i++) {
	for(int k = 1; k <= 10; k++) {
		System.out.print(k+ " ");
	}
	for(int j = 1; j <= 10; j++) {
		if(j % 2 == 0) break abc;
		System.out.print(j + " ");
	}
	System.out.println();
}

 

결과

1 2 3 4 5 6 7 8 9 10 1

라벨을 사용하지 않고 일반적인 break를 사용했다면 결과로 출력된 것이 3번 나와야 하지만

라벨을 사용해 첫 번째 반복문을 종료시켰기 때문에 한 번만 출력이 되는 것이다.

 

continue

반복문 안에서 continue를 만나게 되면 가장 가까운 반복문의 증감식으로 돌아간다. (증감식이 없다면 조건식으로 돌아간다)

코드

for(int i = 1; i <= 2; i++) {
	for(int j = 1; j <= 5; j++) {
		if(j%2==0) continue;
		System.out.print(j + " ");
	}
	System.out.println();
}

결과

1 3 5 
1 3 5

j에 짝수가 들어가면 조건문을 통해 continue를 만나게 되면서 for문으로 다시 돌아간다.

여기서 위에서 봤던 기타제어문의 특징 중에 하나인 "기타제어문 아래에는 어떠한 코드도 올 수 없다."의 의미를

확인할 수 있다. 만나면 어차피 아래에 있는 코드는 실행이 되지 않기 때문에 그런 것이다.

label continue

label break가 있듯이 continue도 label을 이용할 수 있다.

라벨명 : 반복문 {

   continue 라벨명;

}

 

코드

int n = 0;
outer: while (true) {
	if (n >= 10)
		break;
	while (true) {
		n++;
		if (n % 3 == 0) {
			System.out.println("continue를 만남");
			continue outer;
		}
		System.out.println(n);
	}
}

결과

1
2
continue를 만남
4
5
continue를 만남
7
8
continue를 만남
10
11
continue를 만남

n을 1씩 증가시키면서 3의 배수를 만날 때마다 "continue를 만남"을 출력시키고 continue를 만나게 하는 코드다.

3의 배수를 만날 때마다 "continue를 만남"이 출력되는 것을 확인할 수 있다.

 

[JAVA] 배열(Array)

배열이란? - 같은 자료형의 변수를 지정하여 여러 데이터를 저장할 수 있는 저장공간을 의미한다. - 여러 데이터를 담을 수 있는 구조를 자료구조라고 한다. - 배열을 사용하면 같은 자료형의 데

treebomb-code.tistory.com

 

'Java' 카테고리의 다른 글

[JAVA]배열2(Arrays)  (0) 2023.12.01
[JAVA] 배열(Array)  (2) 2023.11.30
[JAVA] 제어문(for,while)  (0) 2023.11.28
[JAVA] 제어문(if, switch)  (0) 2023.10.24
[JAVA] 연산자  (2) 2023.10.16