본문 바로가기

Java/Java SE, EE

[Java/Java SE, EE] break, continue

break

break 키워드는 반복문의 블록 내에서 사용됩니다. 반복문의 블록에 포함된 코드가 실행되다가 break 키워드를 만나면 반복문을 즉시 종료합니다. break를 사용 할 수 있는 반복문의 유형은 다음과 같습니다.

  • 반복문
    • for 반복문
    • while 반복문
    • do-while 반복문

break 키워드는 일반적으로 조건문과 함께 사용됩니다. 반복문의 실행에 대해서 예외를 두기 위함입니다.

예시 코드에서는 변수 i의 값이 5를 초과하면 반복문을 즉시 종료합니다.

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

만약 반복문이 중첩되어 사용되고 있다면, break를 만나을 때 가장 가까운 반복만 종료하고 그 바깥족 반복문은 계속 진행됩니다.

for (int i = 0; i < 5; ++i) {
   for (int j = 0; j < 5; ++j) {
      if (1 < j) {
         break;
      }
      
      System.out.println("i = " + i + ", j = " + j);
   }
}

예시 코드를 실행한 결과는 다음과 같습니다. 안쪽 반복문에서 j가 1을 초과하는 경우 반복문을 즉시 종료하고, 바깥의 반복문을 이어서 실행합니다. 

i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1
i = 3, j = 0
i = 3, j = 1
i = 4, j = 0
i = 4, j = 1

만약 특정 반복문을 지정하여 break 하고자 하는 경우, 반복문에 이름(라벨)을 붙여서 해당 라벨의 반복문을 종료 할 수 있습니다. 아래 예시에서는 바깥쪽 반복문에 Outter 이름을 부여하고, 내부 반복문에서 j 값이 1을 초과할 때 Outter 반복문을 종료합니다.

Outter: for (int i = 0; i < 5; ++i) {
   Inner: for (int j = 0; j < 5; ++j) {
      if (1 < j) {
         break Outter;
      }
      
      System.out.println("i = " + i + ", j = " + j);
   }
}

예시 코드를 실행한 결과는 다음과 같습니다.

 

i = 0, j = 0
i = 0, j = 1

하지만 프로그램을 구현할 때 특정 반복문을 임의로 종료하는 로직은 잘 사용하지 않으므로, 반복문에 이름을 붙이는 일은 사실 거의 없습니다.

continue

continue 키워드는 break 키워드와 마찬가지로 반복문의 블록 내에서 사용합니다. 반복문의 블록에 포함된 코드가 실행되다가 continue 키워드를 만나면 현재 실행중인 블록의 남은 코드를 즉시 건너뛰어 반복문의 조건식으로 이동합니다. continue를 사용 할 수 있는 반복문의 유형은 다음과 같습니다.

  • 반복문
    • for 반복문
    • while 반복문
    • do-while 반복문

continue 키워드 역시 break 처럼 보통 조건문과 함께 사용됩니다. 이 역시 반복문 실행에 있어 예외를 두기 이함입니다.

예시 코드에서는 변수 i의 값이 5로 나누어 떨어질 때마다 실행중인 블록의 남은 코드를 건너뜁니다.

for (int i = 1; i <= 10; ++i) {
   if (0 == i % 5) {
      System.out.println(i + "는 건너뜁니다.");
      continue;
   }
   
   System.out.println(i);
}

예시 코드를 실행한 결과는 다음과 같습니다.

1
2
3
4
5는 건너뜁니다.
6
7
8
9
10는 건너뜁니다.