총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2: 5화 “아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
Computer Science/Object Oriented Programming [Java] for 중첩 루프에서 continue가 어디까지 영향을 미치는지
728x90
반응형

while, for, switch 문 내에서 continue의 동작 범위가 어디까지 인지, 그리고 자주 혼동되는 케이스인 switch 문과의 관계에 대해서도 살펴본다.

 기본 개념: continue는 루프 제어문

continue루프의 다음 반복으로 건너뛰는 제어문이다. 즉, 아래 구조에서 continuefor 또는 while 루프의 현재 반복을 종료하고 다음 반복으로 진행한다.

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

출력 결과:

0
1
3
4

 


switch안에서 continue? → 컴파일 에러

while (true) {
    switch (x) {
        case 1:
            continue; // 컴파일 에러 발생
    }
}

 

continue루프 제어문 전용이다. switch는 루프가 아니기 때문에, 내부에서 continue를 쓰면 컴파일 에러가 발생한다.

  • 만약 switch를 루프 내에서 사용해야 하고, 루프 자체를 건너뛰고 싶다면, switch 바깥에 continue를 둬야 한다.
  • break는 switch 내에서만 영향을 가진다.

 

중첩 루프에서의 continue는 어디에 적용될까?

int cnt = 0;
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (j == 1) continue;
    }
    cnt++; // 항상 실행됨
}
System.out.println(cnt); // 출력: 3

 

continue가장 가까운 루프 하나만 영향을 준다.

위 예제에서 continue는 내부 for (int j...) 루프만 건너뛴다.

바깥 루프인 for (int i...)cnt++는 정상적으로 매번 실행된다.

 

확장: labeled continue

복잡한 중첩 루프에서 바깥쪽 루프를 건너뛰고 싶다면, 라벨을 이용한 continue를 사용할 수 있다.

outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (j == 1) continue outer;
    }
    cnt++; // 이 부분은 j == 1일 때 건너뛰게 됨
}

 


구문 작동 설명
switch 내에서 continue 컴파일 에러 발생
중첩 루프에서 내부 루프에 continue 가장 가까운 루프만 건너뜀
continue 이후 바깥 루프의 코드 루프 한 바퀴가 끝난 뒤 실행됨
바깥 루프를 건너뛰고 싶을 때 labeled continue 사용

 

728x90
Computer Science/Object Oriented Programming [Java] for 중첩 루프에서 continue가 어디까지 영향을 미치는지