[Java] 메소드 사용에 있어서의 break, return 의 차이점
2022. 2. 15. 22:30
Break; == 반복문에서의 탈출
for, while, switch 와 같은 반복문을 사용할 때 break; 를 사용하게 되면 해당 반복문을 탈출하게 된다.
아래 기술할 return 과의 차이점은, for문과 같은 반복문을 종료한 뒤에도 코드가 있다면 계속해서 실행된다는 점이다.
public void loopSum(){ // break를 사용한 탈출!
int sum = 0;
for(int i = 1; i < 10; i++) {
sum += i;
System.out.print(i + " ");
if(i == 7) break;
}
System.out.print("합계 : " + sum); // 결과 1 2 3 4 5 6 7 합계 : 28
}
예시에서 보이듯, for문을 탈출한 뒤에서 print 출력이 이루어진다.
Return; == 메소드 자체를 탈출
return은 메소드 자체를 종료/ 탈출시키는 기능을 한다.
아래의 예시를 기준으로 한다면, i가 7이 되면 loopSum이라는 메소드 자체가 종료되는 식이다.
public void loopSum(){ // break를 사용한 탈출!
int sum = 0;
for(int i = 1; i < 10; i++) {
sum += i;
System.out.print(i + " ");
if(i == 7) return;
}
System.out.print("합계 : " + sum); // 결과 1 2 3 4 5 6 7
}
실제로 출력을 해보면 for 문을 종료한 뒤 출력되어야 할 합계 : sum 이라는 구문이 출력되지 않고 종료됨을 알 수 있다.
* 기타
만약 메소드 자체가 반복문 하나만을 다룬다면, break을 사용한다해도 return와 차이가 없을 수도 있다. 왜냐하면 반복문을 종료하고 난 뒤에 코드가 없기 때문이다. 하지만 break와 return의 차이를 확실히 알고, 적합한 상황에 적합한 문법을 사용하는 것이 가장 중요하다.
'Java' 카테고리의 다른 글
[Java] Collections.sort // Comparable+CompareTo 와 Comparator 를 이용한 정렬 (0) | 2022.02.17 |
---|---|
[Java] Arrays.sort / list.sort / Collections.sort / 정렬하는 방법 정리 (0) | 2022.02.17 |
[Java] 자바의 인터페이스 : 상수와 추상 메소드. 추상 클래스와의 차이점, 오버라이딩 (0) | 2022.02.10 |
[Java] 상속, IS-A 관계 (0) | 2022.02.10 |
[Java] Garvage Collection(GC) JVM의 메모리영역 (0) | 2022.02.08 |