While vs For 무엇이 더 효율적인가? (스코프 관점)

개발연습생log·2024년 2월 14일
0

Java

목록 보기
1/2

스코프란?

지역 변수가 선언된 블록 ({})이다.
지역 변수가 선언된 블록을 벗어나서 해당 변수를 사용하면 컴파일 에러가 발생한다.

While vs For

보통 while은 복잡한 조건문을 적용할 때 사용하기 좋고, for문은 정해진 횟수만큼 반복 수행하는 경우에 사용하기 적합하다.
용도에 따른 반복문 적용의 차이 이외에 한번 scope관점에서 while 문과 for 문의 차이를 바라보고자 한다.

While

public class WhileEx {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        int endNum = 3;

        while (i <= endNum) {
            sum += i;
            System.out.println("i=" + i + " sum=" + sum);
            i++;
        }
    }
}
  • while문의 조건문에서 사용되는 iendNum 변수는 while문 scope 범위 밖에서 선언되어 while문이 종료되어도 해당 지역 변수들은 생명 주기에 남아있다.

For

public class ForEx {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1, endNum = 3; i <= endNum; i++) {
            sum += i;
            System.out.println("i= " + i + " sum= " + sum);
        }
    }
}
  • for문의 조건문에서 사용되는 iendNum 은 for문의 scope의 내부의 지역 변수로 한정하여 for문 종료 시 해당 지역 변수는 생명 주기에서 사라지게 된다.
  • 따라서 메모리를 효율적으로 관리할 수 있다는 장점이 있다.

[참고 자료]

  • 김영한 자바 입문 강의 (인프런)
profile
주니어 개발자를 향해서..

0개의 댓글