ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | 탈출문 Break, Continue
    JAVA/JAVA 2020. 1. 17. 17:09

    탈출문

    제어문(대부분 반복문) 중에서 특정 조건에 따라
    더 이상 코드를 실행하지 않고 중간에 빠져나가는 경우에 사용하는 구문


    Break문

    반복문 내의 코드가 실행되다가 break를 만나면
    코드의 실행을 중지하고 반복문 밖으로 빠져나감

    유형1_레이블이 없는 Break문

    조건문에 따라 break문을 만나게 되면
    break문과 가장 가까운 루프에서 탈출함

    일반적인 break문이며 대부분의 경우에 해당함

    public class BreakTest {
        public static void main(String[] args) {
            for (int a = 0; a < 3; a++) {
                for (int b = 0; b < 6; b++) {
    
                // b가 2가 되었을 때 해당 루프에서 탈출하도록 함
                if(b==2) break;
                    System.out.println("a: " + a + ", b: " + b);
                }
                System.out.println("======");
                 /*
                 a: 0, b: 0
                 a: 0, b: 1
                 ==========
                 a: 1, b: 0
                 a: 1, b: 1
                 ==========
                 a: 2, b: 0
                 a: 2, b: 1
                 ==========
                 */
            }
        }
    }

    ※ b가 2가 되면 내부 for문에서 바로 탈출하기 때문에 a값은 0~2가 출력된 반면 b의 값은 0, 1까지만 출력됨


    유형2_레이블이 있는 Break문

    break문으로 루프를 탈출할 때 레이블을 사용하면 원하는 위치까지 벗어날 수 있음

    형식) break 레이블명;
    빠져나가길 원하는 for문의 바로 위에 레이블명:

    public class BreakTest2 {
        public static void main(String[] args) {
    
            A: // 레이블명: 탈출하고 싶은 for문의 바로 위에 레이블 작성
            for (int a = 0; a < 3; a++) {
                for (int b = 0; b < 6; b++) {
                if(b==2) break A; // break 레이블명;
                    System.out.println("a: " + a + ", b: " + b);
                }
                System.out.println("======");
    		 /*
    		a: 0, b: 0
    		a: 0, b: 1
    		*/
            }
        }
    }

    ※ b의 값이 2가 되는 순간 바깥쪽 for문 밖으로 탈출하기 때문에 a: 0, b: 1 이후의 값은 출력되지 않음


    Continue문

    skip문이라고도 하며, 특정 조건에 만족하는 continue문을 만나게 되면
    continue문 바로 아래의 문장을 수행하지 않고 반복문의 종류에 따라 정해진 위치로 이동

    while, do~while문: 조건식으로 이동
    for 문: 증감식으로 이동

    가장 가까운 루프에 적용됨


    사용례

    public class ConTest {
        public static void main(String[] args) {
            for (int a = 0; a < 2; a++) {
                for (int b = 0; b < 6; b++) {
                    // b가 짝수일 때 continue 바로 아래의 코드를 실행하지 않고 증감식으로 넘어감
                    if (b % 2 == 0)
                        continue;
                    System.out.println("a: " + a + ", b: " + b);
                }
                System.out.println("======");
            }
             /*
             a: 0, b: 1
             a: 0, b: 3
             a: 0, b: 5
             ==========
             a: 1, b: 1
             a: 1, b: 3
             a: 1, b: 5
             ==========
             */
        }
    }

    ※ continue문도 break문처럼 레이블을 사용할 수는 있지만 잘 사용하지는 않음


    반복문에서 빠져나가야 하거나 특정 조건 아래의 코드를 실행하지 않고 넘어갈 때 사용하는

    break문과 continue문에 대해 알아보았습니다.

    레이블을 사용하면 break로 빠져나갈 수 있는 for문을 지정할 수 있기 때문에
    현재 for문의 가장 바깥 for문으로 탈출하거나 할 때 사용할 수 있겠습니다.

    댓글

Designed by Tistory.