본문 바로가기

Web/Java

[Java] 반복문에서 break를 사용해야할 때

반응형

상황 1

public class BreakExample2 {
	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);
	}
}

 

 

상황 2

public class BreakExample {
	public static void main(String[] args) {
		int sum = 0;
		int num = 0;

		for (num = 0; ; num++) {
			sum += num;
		    if (sum >= 100)
		    	break;	// sum이 100보다 크거나 같을 때 반복문 중단
		}

		System.out.println("num: " + num);
		System.out.println("sum: " + sum);
	}
}

 

 

합이 105가 되는 순간 num 값은 14이다. 

1 + 2 + 3 + ... + 14 = 105

 

상황 1에서는 1부터 14까지 더해져서 105가 되었고, num 이 1 증가하여 15가 되었을 때 조건을 비교해보고 합이 100보다 커서 반복문이 끝난 것. 14를 얻기 위해서는 증감이 이루어지기 전에 반복문을 끝내야 함. 이 경우에 break문 사용하면 정확한 값을 얻을 수 있음

반응형