언어/Java

[Java 개념] Chapter 2-1 : 변수

장효창 2021. 12. 11. 22:02

2021.09.27 - [코드/Java] - [JAVA] VSCODE를 이용한 자바 개발환경 구축

 

[JAVA] VSCODE를 이용한 자바 개발환경 구축

1. Oracle 홈페이지 접속 후, 개인 OS에 맞는 인스톨러 다운로드. https://www.oracle.com/java/technologies/downloads/ 일반적으로 x64 Installer 다운로드 한다. 해당 경로명을 잊지말자. 2. 환경변수 편집을..

arcticfox96.tistory.com

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

 

사용자가 메모리에 값을 저장하고 싶다면 변수를 선언하고 변수에 값을 지정하면 된다.

이 때, 어떤 방식으로 저장할 지는 프로그래밍 언어와 운영체제가 정하게 되고 자바의 경우 자바가상머신(JVM)이 결정.

(파이썬 같은 언어와 달리 실수 변수에는 실수 값만, 정수 변수에는 정수 값만)

 

- 선언 시 타입과 변수 이름을 동시에 저장

int age;
double value;

 - 변수 이름 명명 규칙

작성 규칙
첫 번째 글자는 문자이거나 '$','_'이어야 하고 숫자로 시작 불가 가능 : price, $price , _company
불가능 : 1v @speed, $#value 
영어 대소문자 구분함. First 와 first는 다르다
첫문자는 영어 소문자, 다른 단어 붙을 시 첫문자 대문자 maxSpeed, firstName 
길이 제한은 없다. -
예약어는 사용이 불가능 하다. -

※ 규칙 2의 경우 필수

※ 규칙 3의 경우 camel 표기법이라고 하며, 파스칼 표기법과 반대라고 생각하면 된다.

 

- 예약어

<자바의 예약어>

깔끔하고 의미가 명확한 변수 명명은 코딩테스트나 코드를 읽는 다른 개발자에게 도움이 된다.

 

- 값 저장

변수에 값을 저장할 때에는 대입연산자(=)를 사용한다. 오른쪽의 값을 왼쪽에 저장한다는 의미

 

※ 저장과 선언

변수를 선언한다 라는 것은 저장되는 값의 종류와 이름만 언급한 것이다.

변수를 저장한다 라는 것은 선언된 변수에 최초로 값을 저장하는 행위이고 이 때 변수가 생성된다.

 

즉 변수를 선언 후 저장하므로써 실제 변수가 생기고 정확하게 생기는 지점은 변수를 저장할 때 생성된다.

이때, 변수를 초기화 한다고 하고 사용된 값을 초기값이라고 한다. 

<메모리에 선언된 변수에 값이 저장되는 과정>

 

- 예제) 값을 초기화 하지 않은 경우 오류 출력.

public class ex2_1{
    public static void main(String[] args){
        int value;

        int result = value + 10;

        System.out.println(result);
    }
}

The local variable value may not have been initialized

 

- 변수 사용

변수는 출력문이나 연산식 내부에서 변수에 저장된 값을 출력하거나 연산할 때 사용한다.

int hour = 3;
int minute = 5;

System.out.println(hour + "시간" + "분");

해당 코드를 실행하면 값이 저장되어 3시간 5분을 출력한다.

public class ex2_2 {
    public static void main(String[] args){
        int hour = 3;
        int minute = 5;
        System.out.println(hour + "시간 " + minute + "분");

        int totalMinute = (hour*60) + minute;
        System.out.println("총 " + totalMinute + "분 ");

    }
}

해당 코드를 실행하면 값이 대입 된

3시간 5분

총 185분 을 출력한다.

 

변수는 또 다른 변수에 대입하여 값을 복사할 수 있다. 다음 코드는 변수 x값을 변수  y 값으로 복사한다.

int x = 10;
int y = x;

다음 코드는 두 변수의 값을 교환하는 방식을 보여주는 예이다.

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

    } 
}

출력 결과 :

x:3, y:5
x:5, y:3

<ex2_3의 순서 도식화>

- 변수 사용 범위

코드를 작성하다보면 변수의 라이프를 아는 것이 중요하다.

변수는 블록 내 어디에서도 선언할 수 있지만 변수 사용에는 제한이 따른다.

 

주의사항

1. 변수가 어떤 범위에서 사용될 것인지 생각하고 선언 위치를 결정한다.

2. 메소드 블록 전체에서 사용하고 싶다면 메소드 블록 첫머리에 선언한다.

3. 특정 블록 내부에서만 사용된다면 해당 블록 내에 선언한다.

 

 

 

※로컬변수 : 메소드 블록 내에서 선언된 변수

public class ex2_4 {
    public static void main(String[] args){
        int v1 = 15;
        if(v1 > 10){
            int v2;
            v2 = v1 - 10;
        }
        int v3 = v1 + v2 + 5;
    }
}

해당 소스코드 실행 시 오류 발생.  v2는 if(v1 > 10) 블럭 내부에서만 유효한 변수이기 때문이다.