복습겸 자바책을 학교 도서관에서 찾다가 새로운 책이 있는거 같아서 그 책으로 읽는 중 제어문부분에서 예전에 프로젝트중에 코드를 조금 더 쉽게 할 수 있는 제어역할을 하는 것을 알게 되어서 글을 쓰게 됬다.
일단 일반적으로 제어문중에 break 와 continue가 있는거는 다들 알거라 생각된다.
하지만 여기서 lavel문이라는게 있는데 이것은 일반적인 것이랑 조금 다르다.
정리 하자면 수행을 포기하는냐(break) 아니면 수행을 건너뛰게 하느냐(continue)로 구분되는 거같다...
무슨 말이냐면
1. 일반적인 break문은 밑에 보기처럼 동작방식은 가장 가까운 반복문의 탈출이다.
하지만!!! break label문은 하나의 반복문을 빠져나가려는 앞의 break문과는 달리 여러 개의 반복문을 한번에 탈출할 때 많이 사용한다.!!!(대박 이게 자주 쓰이지는 않지만여 한번씩 쓰였던거 같아요... 이런게 있다고 알아두면 좋을 듯.)
break label의 동작 방식은 밑에 보기와 같다.
class BreakEx2 {
public static void main(String[] args) {
exit_For: // 레이블 설정
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 3)
break exit_For;
System.out.println("i값:"+i+", j값:"+j);
}
}
}
결과값 :
i값:0, j값:0
i값:0, j값:1
i값:0, j값:2
2. continue문인데 여기에도 continue label문이 있다.
일반적인 continue는 continue문을 만나면 다음의 수행문들을 수행하지 않고 다음 반복을 위해 증감식으로 넘어갑니다. (단, 증감식이 없다면 조건식으로 넘어간니다.)
하지만 continue label문은 !!!! continue문을 만나면 내부 반복문을 중단하고 레이블을 가진 외부 반복문의 다음 반복회차를 수행하게됩니다. continue문 아래의 수행문은 수행하지 못합니다.
continue label문 수행과정
다음은 continue label문을 이용한 예입니다.
public class ContinueEx2 {
public static void main(String[] args) {
label: // 레이블 설정
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 3)
continue label;
System.out.println("i값:"+i+", j값:"+j);
}
}
}
}
따라서 결과 값이 이렇게 도출된다...
i값:0, j값:0
i값:0, j값:1
i값:0, j값:2
i값:1, j값:0
i값:1, j값:1
i값:1, j값:2
i값:2, j값:0
i값:2, j값:1
i값:2, j값:2
i값:3, j값:0
i값:3, j값:1
i값:3, j값:2
i값:4, j값:0
i값:4, j값:1
i값:4, j값:2
동적바인딩으로 Stack/Queue (0) | 2018.01.18 |
---|---|
추상 메소드// 인터페이스 (0) | 2017.10.02 |
댓글 영역