본문 바로가기

개발/Java

[Java] 자바 - break / continue (무한반복문)

< 무한반복문 >

 

1. for(;;) - 초기식;조건식;증감식 생략

2. while(true) 

 

< break >

 

- 반복문에서 break를 만나는 순간, "가장 가까운 반복문"을 빠져나감

- 이때, 해당 break문이 속해있는 반복문 '한 겹'만 빠져나감

* switch문의 break와 다른 개념 - 해당 switch문을 빠져나감

 

// for문에서의 break
public void method1() {
    // 매번 반복적으로 새롭게 랜덤값(1~100)을 생성해서 출력 => 무한하게 반복
    // 반복문을 돌다가 생성된 랜덤값이 홀수일 경우, 반복문을 빠져나가게 함
 
    for(;;) { // for문 시작

        int random = (int)(Math.random() * 100) + 1;

        if (random % 2 == 1) {
            System.out.println("반복문 탈출!!");
            break; // break를 만나면 for문 끝으로 이동
        } 
        System.out.println(random); // 랜덤값 출력

    } // for문 끝

}

 

// while문에서의 break
public void method5() {
	// 사용자에게서 수를 입력받음
    // 단, 음수가 입력되면 프로그램 종료

	Scanner sc = new Scanner(System.in);
    int num = 0;

    while(true) {
        System.out.print("숫자를 입력해주세요 > ");
        num = sc.nextInt();

        if (num < 0) { 
            System.out.println("프로그램을 종료합니다.");
            break;
        }
    }
}

 

 

< continue >

 

- 반복문 안에서 continue를 만나면, 그 뒤에 어떤 구문이 있든간에 실행하지 않고 지나감

- 가장 가까운 반복문으로 다시 올라가라는 의미

 

public void method1() {
	// 1 ~ 100 중에서 홀수만 출력

    // 방법 1. 반복문을 1씩 증가시키면서 돌리는데, 홀수일 경우만 출력하도록 조건문 사용
    // if(i % 2 == 1) System.out.println(i);

    // 방법 2. 증감식을 매번 2씩 증가시킴
    // for (int i = 1; i <= 100; i += 2) 

    // 방법3. continue 사용

    for (int i = 1; i <= 100; i++) {
    
        if(i % 2 == 0) {
            continue; // 짝수일 경우, continue를 만나 증감식으로 올라감
        }
        System.out.print(i + " ");
    }

}