[JAVA] scope | 이름이 똑같은 변수를 여러 번 만들 수 있어요! ??만 중복되지 않는다면!

0

Q2. SCOPE!

Q3. 그래서 이름이 똑같은 변수를 여러번 만들 수 있는 거죠!


Q1. 변수가 적용되는 기준은?

  • 변수는 { } 를 기준으로 적용됩니다!
    - {} 이 열리면 변수가 생성되고, {} 가 닫히면 변수는 소멸됩니다.
    - 그래서 서로 다른 {}에서는 이름이 똑같은 변수를 쓸 수 있어요.

자바코드입력

  • 보통 이름이 똑같은 변수를 중복하여 사용하면, 이렇게 에러가 나잖아요.

자바코드입력

  • 하지만 위의 코드를 보면, 변수 star와 i는 클래스 내 여러 곳에서 반복 사용됨에도 불구하고, 에러 없이 결과가 출력됩니다.

  • 그이유는 위의 코드에 네 개의 메소드가 있죠?
    main() { }
    printStarLine() { }
    printStarSqure() { }
    printStarTri() { }

    { }안에서는 이름이 똑같은 변수가 없고, { }밖에서만 이름이 똑같은 변수가 중복사용되기 때문이예요.

콘솔 창 결과

*****

*****
*****
*****
*****
*****

*
**
***
****
*****

***

***
***
***

*
**
***



Q2. SCOPE!

  • 스코프는 변수의 사용가능한 범위를 뜻합니다. 그리고 그 범위는 {}입니다.




Q3. 그래서 이름이 똑같은 변수를 여러번 만들 수 있는 거죠!

  • main메소드 안에서 for문을 여러번 사용할 때, 그때 그때 마다 변수명을 바꿔줄 필요가 없는 거예요!

자바코드입력

public class Scope1 {
  public static void main(String[] args) {
    
    	for (int i=0; i<10; i++) {
        	System.out.print(i);
        }
        
        System.out.println();
        
        for (int i=0; i<5; i++) {
        	System.out.print("*^^*  ");
        }

콘솔 창 결과

0123456789
*^^*  *^^*  *^^*  *^^*  *^^*  
  • 하지만! 중첩 for문, for문 '안에' for문을 여러번 사용할 떄는 그때 그때 마다 변수명을 바꿔줘야 하죠!

자바코드입력 (변수의 적용 범위가 중복되어 에러)

자바코드입력 (변수의 적용 범위가 중복되므로 변수의 이름을 서로 다르게 해줘야 해요.)

public class Scope1 {
  public static void main(String[] args) {
    
    	for (int i=0; i<3; i++) {
        	for (int j=0; j<3; j++) {
            	System.out.print("*^^*  ");
            }
        	System.out.println(i);
        }

콘솔 창 결과

*^^*  *^^*  *^^*  0
*^^*  *^^*  *^^*  1
*^^*  *^^*  *^^*  2

profile
몇 번을 넘어져도 앞으로 계속 나아가자

0개의 댓글