JAVA

continue문, break문

seungmin576 2024. 12. 10. 15:43

continue

반복문과 함께 쓰인다.

반복문 안에서 continue문을 만나면 이후의 문장은 수행하지 않고 for문의 처음으로 돌아가 증감식을 수행한다.

 

  • 1부터 100까지의 수를 더할 때 홀수일 때만 더하는 예제
public class ContinueExample {
    public static void main(String[] args){
        int total = 0;
        int num;

        for(num = 1; num <= 100; num++) {
            if (num % 2 == 0) {
                continue;
            }
            total += num;
        }
            System.out.println("1부터 100까지의 홀수의 합은 : " + total + "입니다.");
    }
}

 

 

  • continue문을 사용할 시기

위 예제를 보면 반복문 안의 조건문에서 변수 num이 짝수일 때는 이후 수행을 생략하고 for문의 증감식으로 돌아가서 num에 1을 더한다.

num이 홀수일 때는 계속 진행(continue)해서 total += num; 문장을 수행한다.

이렇듯 continue문은 반복문을 계속 수행하는데, 특정 조건에서는 수행하지 않고 건너뛰어야 할 때 사용한다.

 

 

 

 

break

반복문에서 break문을 사용하면 그 지점에서 더 이상 수행문을 반복하지 않고 반복문을 빠져나온다.

 

  • 0부터 시작해서 숫자를 1씩 늘리면서 합을 계산할 떄 숫자를 몇까지 더하면 100이 넘는지 알고 싶은 예제
public class BreakExample {
    public static void main(String[] args){
        int sum = 0;
        int num = 0;

        for(num = 0; sum < 100; num++){
            sum += num;
        }
        System.out.println("num : " + num);
        System.out.println("sum : " + sum);
    }
}

 

결과가 뭔가 이상하다.

원래 1부터 14까지 더한 순간에 105가 되므로 num의 값이 14여야 하는데 15가 나온다.

즉 1부터 14까지 더해져서 105가 되었고 num값이 1씩 증가하여 15가 되었을 때 조건을 비교해 보니 합이 100보다 커서 반복문이 끝난 것이다.(for문의 실행 순서를 알면 이해가 된다. https://seungmin576.tistory.com/35)

따라서 우리가 원하는 값인 14를 얻으려면 증감이 이루어지기 전에 반복문을 끝내야 한다. 

 

 

  • 위와 같은 예제에서 break문을 사용하여 올바른 답을 도출
public class BreakExample2 {
    public static void main(String[] args){
        int sum = 0;
        int num = 0;

        for(num = 0; ; num++){
            sum += num;
            if(sum >= 100)
                break;
        }
        System.out.println("num : " + num);
        System.out.println("sum : " + sum);
    }
}

조건식을 생략하는  대신 break문을 사용하여 sum값이 100보다 크거나 같으면 반복문을 바로 빠져나온다.

종료 조건을 for문 안에 사용했을 때는 num 값을 늘리는 증감식이 수행되어 num값이 15였던 것과 달리 제대로 나오는 모습이다.

 

 

  • break문의 위치

반복문이 중첩된 경우에 break문을 사용하면 모든 반복문을 빠져나오는 것이 아니고 break문을 감싸고 있는 반복문만 빠져 나온다.

while(조건식1){
	while(조건식2){
    	if(조건식)
        break;
    }
}

위와 같다면 내부 while만 if문 조건식에 해당할때 빠져나와 외부 while을 반복 수행한다.

 

 

 

 

continue, break 차이

continue문은 반복문을 계속 수행하지만 특정 조건에서 수행문을 생략하는 경우에 사용한다.

break문은 반복문을 더 이상 수행하지 않고 빠져나올 때 사용한다.

'JAVA' 카테고리의 다른 글

함수(매개변수, return), 스택 메모리, 메서드  (0) 2024.12.11
객체 지향 프로그래밍, 클래스  (1) 2024.12.11
반복문  (0) 2024.12.09
조건문  (2) 2024.12.09
비트 연산자, 연산자 우선순위  (0) 2024.12.09