백엔드 과정/자바 예습

[혼공자]Chap 02-1 변수

mim 2021. 12. 14. 12:03
반응형

변수: 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름. 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.

변수 선언: 어떤 타입의 데이터를 저장할 것인지 변수이름이 무엇인지 결정한다.
int age; //정수(int)를 저장할 수 있는 age 변수 선언
같은 타입의 변수는 콤마(,)를 이용해 한꺼번에 선언할 수 있다.

  • 변수 이름의 명명 규칙영어 대소문자를 구문한다. (필수)문자 수 길이의 제한은 없다.예약어: 이미 해당 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어.
  • 자바 예약어는 사용할 수 없다.
  • 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다. (관례)
  • 첫 번째 글자는 문자이거나 '$', '_' 이어야 하고, 숫자로 시작할 수 없다.



    • exam 1) 변수 선언 후 값 저장
      package sec01.exam01;
      
      public class VariableInitilizationExample {
      
      	public static void main(String[] args) {
      
      		int value; //변수 value 선언
      
      		//변수 value 값을 읽고, 10을 대입 수행
      		//연산의 결과값을 변수 result의 초기값으로 저장
      		
      		int result = value + 10;
      		
      		//변수 result 값을 읽고 콘솔에 출력
      		System.out.println(result); //단축키 syso + ctrl + space 
      	}
      }
      //변수 선언 후 초기값을 설정하지 않으면, 컴파일 에러가 발생한다. The local variable value may not have been initialized= 초기 내용을 설정하다
    • exam 2) 변수 사용
package sec01.exam01;

public class VariableUseExample {

	public static void main(String[] args) {
		int hour = 3;
		int minute = 5;
		System.out.println(hour + "시간" + minute + "분"); //변수 hour와 minute 값을 출력 : 3시간 5분
		
		int totalMinute = (hour*60)+ minute;
		System.out.println("총"+ totalMinute + "분");
	}
}
  • exam 3) 두 변수의 값을 교환하는 방법
    package sec01.exam01;
    
    public class VariableExchangeExample {
    	public static void main(String[] args) {
    	int x = 3;
    	int y = 5;
    	System.out.println("x:" +x +", y:" +y);
    	
    	int temp = x;
    	x = y;
    	y = temp;
    	System.out.println("x:" +x +", y:" +y);
    	}
    }
    
    //두 변수의 값을 교환하기 위해 temp 변수를 선언하여 사용한 코딩


변수 사용 범위: 변수는 자신이 선언된 위치에서 자신이 속한 블록 내부까지만 사용이 가능하고 밖에서는 사용할 수 없다.
자바의 모든 변수는 중괄호 {} 블록 내에서 선언되고, 사용된다. 메소드 블록 내에서 선언된 변수를 로컬 변수라고 부른다.
로컬 변수는 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.

  • exam 4) 변수사용범위
    • 변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언 위치를 결정해야 한다.
    • 메소드 블록 전체에서 사용하고 싶다면 메소드 블록 첫머리에 선언한다.
    • 특정 블록 내부에서만 사용된다면 해당 블록 내에 선언한다.
    package sec01.exam01;
    
    public class VariableScopeExample {
    	public static void main(String[] args) {
    	int v1 = 15;
    	if(v1>10) {
    		int v2;
    		v2 = v1-10;
    	}
    	int v3= v1+v2+5; // v2 변수를 사용할 수 없기 때문에 컴파일 에러 발생
    	}
    }
    
    // v2 cannot be resolved to a variable = 변수 v2를 해석할 수 없다는 뜻



반응형