본문 바로가기

개발 일기/Java Programming

변수 | 선언 | 정수형 int | 실수형 float | 실수형 double | 대입 | 대입 연산자

변수

 

1. 변수의 선언

a. 변수 : 어떤 값을 저장하기 위한 메모리 공간(그릇이라고 생각하면 됨)

int(용도) a(변수명);
double(데이터형) b(변수명);
정수만 담아야 함 실수만 담아야 함
정수형 변수 a 실수형 변수 b

정수형 변수와 실수형 변수의 간단한 개념

- Tip : 정수형 int 4byte, 실수형 float4byte, 실수형 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;

 

왼쪽에는 변수만. 오른쪽에는 값(수식, 함수, 값, 변수)

중간 = 대입 (저장, 할당)