본문 바로가기
Kotlin

[Kotlin] Label을 이용한 break, continue

by Bhinney 2023. 11. 14.

1️⃣ break

  • 반복문이 실행되는 중간에 사용하여 반복문을 종료시킴
  • 중첩 반복문에 사용될 경우, 사용된 위치와 가장 가까운 반복문 종료
for (int i = 1; i <= 5; i++) {
   if (i == 3) break;
   
   System.out.printf("자바 반복문 내에서 브레이크 확인 : 지금 i값은 %d%n", i);
}

System.out.println("##########################################");

for (int i = 1; i <= 5; i++) {
   for (int j = 1; j <= 5; j++) {
      if (i == j) break;
      
      System.out.printf("자바 중첩 반복문 내에서 브레이크 확인 : i는 %d%n이고 j는 %d%n ", i, j);
   }
}

/* 출력 (보기 좋게 정리하였음)
자바 반복문 내에서 브레이크 확인 : 지금 i값은 1
자바 반복문 내에서 브레이크 확인 : 지금 i값은 2
##########################################
자바 중첩 반복문 내에서 브레이크 확인 : i는 2이고 j는 1
자바 중첩 반복문 내에서 브레이크 확인 : i는 3이고 j는 1
자바 중첩 반복문 내에서 브레이크 확인 : i는 3이고 j는 2
자바 중첩 반복문 내에서 브레이크 확인 : i는 4이고 j는 1
자바 중첩 반복문 내에서 브레이크 확인 : i는 4이고 j는 2
자바 중첩 반복문 내에서 브레이크 확인 : i는 4이고 j는 3
자바 중첩 반복문 내에서 브레이크 확인 : i는 5이고 j는 1
자바 중첩 반복문 내에서 브레이크 확인 : i는 5이고 j는 2
자바 중첩 반복문 내에서 브레이크 확인 : i는 5이고 j는 3
자바 중첩 반복문 내에서 브레이크 확인 : i는 5이고 j는 4
*/

2️⃣ continue

  • 반복문 실행되는 중간에 사용하여 다음 반복문 조건으로 넘김
for (int i = 1; i <= 5; i++) {
   if (i % 2 == 0) continue;
   
   System.out.printf("자바 반복문 내에서 컨티뉴 확인 : 지금 i값은 %d%n", i);
}

System.out.println("##########################################");

for (int i = 1; i <= 5; i++) {
   for (int j = 1; j <= 5; j++) {
      if (j % i == 0) continue;
      
      System.out.printf("자바 중첩 반복문 내에서 컨티뉴 확인 : i는 %d%n이고 j는 %d%n ", i, j);
   }
}

/* 출력(보기 좋게 정리하였음)
자바 반복문 내에서 컨티뉴 확인 : 지금 i값은 1
자바 반복문 내에서 컨티뉴 확인 : 지금 i값은 3
자바 반복문 내에서 컨티뉴 확인 : 지금 i값은 5
##########################################
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 2이고 j는 1
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 2이고 j는 3
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 2이고 j는 5
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 3이고 j는 1
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 3이고 j는 2
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 3이고 j는 4
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 3이고 j는 5
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 4이고 j는 1
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 4이고 j는 2
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 4이고 j는 3
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 4이고 j는 5
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 5이고 j는 1
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 5이고 j는 2
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 5이고 j는 3
자바 중첩 반복문 내에서 컨티뉴 확인 : i는 5이고 j는 4
*/

💡코틀린에서는 label을 사용하여 반복문을 한꺼번에 종료하거나 반복문 조건을 넘길 수 있음 

  • 반복문 앞에 '라벨_이름 + @'를 붙이고, break 혹은 continue 뒤에 '@ + 라벨_이름'을 붙여서 사용
라벨_이름@for (범위) {
   for (범위) {
      if(조건) break@라벨_이름
   }
}

라벨_이름@for (범위) {
   for (범위) {
      if(조건) continue@라벨_이름
   }
}
fun main () {
    doubleForBreakExample()
    println("##############################")
    doubleForContinueExample()
}

fun doubleForBreakExample() {
    breakLoop@for(i in 1..5) {
        for (j in 1..3) {
            if (i == 2 && j == 2) break@breakLoop

            println("코틀린 다중 반복문 break 확인 : i는 $i 이고, j는 $j")
        }
    }
}

fun doubleForContinueExample() {
    continueLoop@for(i in 1 .. 5) {
        for (j in 1 .. 5) {
            if (j == i) continue@continueLoop

            println("코틀린 다중 반복문 continue 확인 : i는 $i 이고, j는 $j")
        }
    }
}

/* 출력
코틀린 다중 반복문 break 확인 : i는 1 이고, j는 1
코틀린 다중 반복문 break 확인 : i는 1 이고, j는 2
코틀린 다중 반복문 break 확인 : i는 1 이고, j는 3
코틀린 다중 반복문 break 확인 : i는 2 이고, j는 1
##############################
코틀린 다중 반복문 continue 확인 : i는 2 이고, j는 1
코틀린 다중 반복문 continue 확인 : i는 3 이고, j는 1
코틀린 다중 반복문 continue 확인 : i는 3 이고, j는 2
코틀린 다중 반복문 continue 확인 : i는 4 이고, j는 1
코틀린 다중 반복문 continue 확인 : i는 4 이고, j는 2
코틀린 다중 반복문 continue 확인 : i는 4 이고, j는 3
코틀린 다중 반복문 continue 확인 : i는 5 이고, j는 1
코틀린 다중 반복문 continue 확인 : i는 5 이고, j는 2
코틀린 다중 반복문 continue 확인 : i는 5 이고, j는 3
코틀린 다중 반복문 continue 확인 : i는 5 이고, j는 4
*/

댓글