변수 : 값을 저장할 수 있는 메모리 번지에 붙인 이름
변수 선언 : 변수에 어떤 타입의 데이터를 저장할지 변수 이름은 무엇인지를 결정
변수 사용 : 변수의 값을 읽거나 변경하는 것
변수 사용 범위 : 변수는 자신이 선언된 위치에서 자신이 속한 블록 내부까지만 사용이 가능하다
자바의 변수에는 다양한 타입의 값은 저장할 수 없다.
정수 타입 변수에는 정수만 실수 타입 변수에는 실수만 저장할 수 있다.
하나의 변수에 동시에 두 가지 값을 저장할 수 없고, 하나의 값만 저장할 수 있다.
변수의 사용 범위
자바의 모든 변수는 중괄호{} 블록 내에서 선언되고 사용된다.메소드 블럭 내에서 선언된 변수를 로컬 변수라고 부른다.
로컬 변수는 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동으로 사라진다.
변수를 선언할 때에 주의할 사항
변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언 위치를 결정해야 한다.
메소드 블록 전체에서 사용하고 싶으면 메소드 블록 첫머리에 선안한다.
특정 블록 내부에서만 사용된다면 해당 블록 내에 선언한다.
package chapter2_1;
public class VariableScopeExample {
public static void main(String[] args) {
int v1 = 15;
int v2 = 4; // 초기화하지 않아서 에러가 난다
if (v1 > 10) {
v2 = v1 - 10;
}
int v3 = v1 + v2 + 5;
}
}
확인문제
1.변수에 대한 설명 중에 맞는 것은 무엇인가?
1. 변수는 하나의 값만 저장할 수 있다. O
2. 변수는 선언 시에 사용한 타입의 값만 저장할 수 있다. O
3. 변수는 변수가 선언된 중괄호 {} 안에서만 사용 가능하다. O
4. 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다. X // 초기값이 없으면 읽을 수 없다.
2. 변수 이름으로 사용할 수 있는 것은?
1. modelName O
2. 6hour X // 숫자가 앞에 오면 안된다.
3. class X // 예약어이다.
4. $value X // 특수기호가 맨 앞에 올 수 없다.
5. _age O
6. int X // 예약어이다.
3. 컴파일 에러가 발생하는 코드를 찾고, 그 이유를 설명하시오.
1. int sum;
2. int score1 = 0;
3. int score2;
4. sum = score1 + score2; // int socre2의 초기값이 없기 때문에 에러가 발생한다.
4. 컴파일 에러가 발생하는 위치를 찾고 이유를 설명하시오.
package chapter2_1;
public class _age {
public static void main(String[] args) {
int v1 = 0;
if (true) {
int v2 = 0;
if (true) {
int v3 = 0;
v1 = 1;
v2 = 1;
v3 = 1;
}
v1 = v2 + v3; // v3가 선언되지 않은 블록이기 때문에 컴파일 에러가 발생한다.
}
System.out.println(v1);
}
}
'Java > 혼공자' 카테고리의 다른 글
JAVA) 기본 타입 (0) | 2023.04.01 |
---|---|
Vscode 파이썬 prettier 적용되게 하는 방법 (0) | 2023.03.12 |
CodeRunner m1맥 오류 (0) | 2023.03.07 |