변수
1. 변수의 선언
a. 변수 : 어떤 값을 저장하기 위한 메모리 공간(그릇이라고 생각하면 됨)
int(용도) a(변수명); double(데이터형) b(변수명); |
→ | 정수만 담아야 함 | 실수만 담아야 함 |
↓ | ↓ | ||
정수형 변수 a | 실수형 변수 b |
정수형 변수와 실수형 변수의 간단한 개념
- Tip : 정수형 int는 4byte, 실수형 float는 4byte, 실수형 double은 8byte.(자바 기본 형식)
2 다양한 변수 선언 방식
int(데이터형) a(변수명);(문장을 마친다) int b; |
== | int(데이터형동일) a,(구분) b; |
가능 | == | 가능 | =x | 불가능 |
int a; float b; int c; float d; |
int a, c; float b, d; |
int a,(구분만 해줌) float b; int c, float d; 한 문장에 나타낼 수 있는 것은 같은 데이터 형식만 가능 |
3. 변수에 값을 대입하는 방법
100 | 123.45 | → | 1. 데이터형 변수 선언. 변수 값을 대입 |
== | 2. 선언과 동시에 바로 |
변수 a | 변수 b | int a; float b; a = 100; b = 123.45f; |
int a == 100; float b == 123.45f |
||
정수형 변수와 실수형 변수에 값을 대입 |
- Tip : 실수형인 float에 값을 대입할 때는 숫자의 맨 뒤에 float를 의미하는 'f'를 붙여야 한다.
a. a, b가 모두 정수형 변수일 때
int a; int b; a = 100; b = 200; |
== | int a = 100, b = 200; |
public class EX03_06 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a; //선언먼저! 정수형 변수 a를 선언
float b; //실수형 변수 b를 선언
a = (int) 123.45f; //정수형 변수에 실수를 대입 -> 바람직x 오류를 방지하기 위해 (int)를 붙여서 정수로 변환
//강제형변환. 실수인데 정수형 그릇에 넣기 위해 int 정수형 입력
b = 200; //실수형 변수에 정수를 대입 -> 바람직x
System.out.printf("a의 값 ==> %d \n", a);
System.out.printf("b의 값 ==> %f \n", b);
a의 값 ==> 123 (이어서출력x 개행)
b의 값 ==> 200.000000 (소수점6자리까지출력)
- 6행 : 정수형 변수에 실수를 대입할 때의 처리 방식
(int) 123.45f | 정수형 변수에 실수를 대입할 때의 처리 방식 | |
↓ | 1. 정수로 변환 | |
123 | ||
↓ | 정수 대입 | |
123 | 2. 그릇(변수)이 정수형이므로 정수형 입력 | |
정수형 그릇(변수) |
- 7행 : 실수형 변수에 정수를 대입할 때의 처리 방식
200 | 실수형 변수에 정수를 대입할 때의 처리 방식 | |
↓ | 1. 정수 대입 | |
200.00 | 2. 그릇(변수)이 실수형이므로 실수로 변함 | |
실수형 그릇(변수) |
7행을 다음과 같이 수정 |
b = 200.0f; 또는 b = (float)200; |
public class EX03_07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a, b; //정수형 변수 2개
float c, d; //실수형 변수 2개
a = 100; //a에 정수 100을 대입
b = a; //b(변수)에 a 값을 대입 (a를 b에 할당)
c = 111.1f; //c에 실수 111.1을 대입
d = c; //d에 c의 값을 대입 (c를 d에 할당)
System.out.printf("a, b의 값 ==> %d, %d \n", a, b);
System.out.printf("c, d의 값 ==> %5.1f, %5.1f \n", c, d); //5.1(전체5자리에소수점이하1자리)
}
}
a, b의 값 ==> 100, 100 _한줄띄움
c, d의 값 ==> 111.1, 111.1
- 6행 : 변수에 변수를 대입할 때의 처리 방식
변수 a 값(100)만 뽑아서 변수 b에 대입 | ||
← | ||
( ) | = | 100 |
정수형 변수 b | 정수형 변수 a | |
변수에 변수를 대입할 때의 처리 방식 |
public class EX03_08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a, b, c, d; //정수형
a = 100 + 100; //a에 두 숫자의 계산 결과 대입
b = a + 100; //b에 변수와 숫자의 계산 결과 대입
c = a + b - 100; //c에 변수의 계산 결과와 숫자의 계산 결과 대입
d = a + b + c; //d에 a, b, c의 덧셈 결과를 대입
System.out.printf("a, b, c, d 의 값 ==> %d, %d, %d, %d \n", a, b, c, d);
a=b=c=d=100; //a,b,c,d에 모두 같은 값 100을 대입(한 문장으로 처리)
System.out.printf("a, b, c, d 의 값 ==> %d, %d, %d, %d \n", a, b, c, d);
a = 100;
a = a + 200; //자신의 a 값과 200을 더한 값을 다시 a에 대입
System.out.printf("a 의 값 ==> %d \n", a);
}
}
a, b, c, d 의 값 ==> 200, 300, 400, 900
a, b, c, d 의 값 ==> 100, 100, 100, 100
a 의 값 ==> 300
a = 100;
a = 200; (100 사라짐)
a = 300; (200 사라짐)
300 출력. 맨 마지막 값이 a의 값
- 5행 : 숫자끼리의 계산 결과를 대입하는 방식
1. 100+100=200 내부적으로 먼저 계산
2. 계산 결과 대입 → 정수형 변수 a
- 6행 : 변수와 숫자의 계산 결과를 대입하는 방식
1. 정수형 변수a=200 + 100 = 300 내부적으로 먼저 계산
2. 계산 결과 대입 → 정수형 변수 b
- 11행
a = b = c = d = 100; | == | d = 100; c = d; b = c; a = b; |
연속된 값의 대입 방식

- 15행 : 자신의 값에 계산 결과를 대입하는 방식
1. 정수형 변수 a = 100 + 200 = 300 내부적으로 먼저 계산
2. 계산 결과 대입 → 정수형 변수 a
4. 대입 연산자와 변수의 위치
a. 대입 연산자(=)를 사용하면 오른쪽 것이 왼쪽에 대입됨
b. 대입 연산자(=)의 오른쪽에는 상수(숫자), 변수, 계산 값이 모두 올 수 있음
ex) 컴퓨터는 저장 공간을 먼저 만들어야 저장 출력.
왼쪽에 값을 넣을 그릇이 없는 경우 X
10 = 100; (X)
a = 100 (O)
100 = a (X)
왼쪽에 값을 넣을 그릇이 있는 경우 O
a = 100;
왼쪽에는 변수만. 오른쪽에는 값(수식, 함수, 값, 변수)
중간 = 대입 (저장, 할당)
'개발 일기 > Java Programming' 카테고리의 다른 글
산술 연산자 | 우선순위 | 강제 형 변환 | 대입 연산자 | 증감 연산자 | 복합 연산자 (0) | 2023.09.11 |
---|---|
데이터 형식과 배열 | 비트 | 진수 | 바이트 | 진수 변환 | 정수의 연산 | 아스키코드(ASCII) | 유니코드 | 불(Boole) | boolean | String 문자열 (2) | 2023.09.09 |
System.out.printf() 메소드의 서식 지정 | %d 정수형 서식 | %f 실수형 서식 | %s 문자열형 서식 | 서식 문자 (1) | 2023.09.03 |
System.out의 기본 | 프린트 명령어 | 메소드 | println | print | printf | 서식 (0) | 2023.09.01 |
계산기 프로그램 | Scanner | Console (0) | 2023.08.30 |