Write it/Java

Java) 변수와 타입_03

develop_mii 2025. 7. 30. 13:20

● 타입 변환

 

byte  <  short  <  int  <  long  <  float  <  double

 

 

1. 자동 타입 변환

- 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생

1) byte → int 

byte byteValue = 20;
int intValue = byteValue;   // 자동타입변환 가능


2) 정수 → 실수

long longValue = 5000000L;
float floatValue = longValue;
double doubleValue = longValue;


3) char → int

char cahrValue = 'A';
int intValue = charValue;  //65가 저장됨  

 

* 자동 타입 변환 예외

   byte는 char 타입으로 자동변환x → char타입은 음수포함하지 않기때문

 

 

2. 강제 타입 변환

- 큰 허용 범위 타입을 작은 허용범위 타입으로 강제로 나눠서 저장하는 것

- 강제타입 변환은 캐스팅 연산자 괄호() 사용

                ← 강제 타입 변환 ←
작은 허용 범위 = (작은 허용 범위) 큰 허용 범위

 

1) int → byte 

intValue = 20;
byteValue = (byte)int intValue;   // 강제 타입 변환


2) int  char

intValue = 50;
char cahrValue = (char) intValue;
System.out.print(charValue);
     // "A"가 출력
 

3)실수 → 정수

double doubleValue = 3.14;
int intValue = (int)doubleValue;   // intValue는 정수 부분인 3만 저장

 

 

3. 정수 연산에서의 자동 타입 변환

- 정수 타입 변수가 피연산자로 사용되면 int 타입보다 작은 byte, short 타입 변수는 int타입으로 자동 타입 변환

byte a = 10;
byte b = 20;
int result = a + b;
System.out.println(result);    // 30

 

 

4.실수 연산에서의 자동 타입 변환

- 두 피연산자가 동일한 실수 타입이라면 해당 타입 그대로 연산

- 피연산자 중 하나가 double 타입이라면 다른 피연산자도 double 타입으로 자동 타입 변환

 

- int타입과 double타입 연산 시 → int 타입 피연산자가 double타입으로 자동 변환 된 후 연산 수행

int a = 10;
double b = 5.5;
double result = a   +  b ;     // 15.5

① a - double 값으로 변환   ② '+'연산   ③ result에 15.5 저장 

 

- int타입으로 연산 해야 한다면 강제 변환하고 연산 수행

int a = 10;
double b = 5.5;
int result = a + (int) b ;     // 15

 

 

5. + 연산에서의 문자열 자동 타입 변환

- 자바에서 + 연산자는 두가지 기능 : 피연산자 숫자일경우 → 덧셈연산 수행

                                                       피연산자 중 하나가 문자일경우 → 나머지 피연산자도 문자열로 자동변환되어 문자열 결합

 

1) 숫자 + 숫자        →      덧셈 연산        →  숫자

2) "문자열" + 숫자  → "문자열" + "숫자"  →  결합 연산  →  "문자열숫자" 

3) 숫자 + "문자열   → "숫자" + "문자열"  →  결합 연산  →  "숫자문자열" 

 

- 연산식에서 +연산자가 연이어 나오면 앞에서부터 순차적으로 +연산 수행

int value = 1+2+3;  →   int value = 3+3;  →   int value = 6;

String str = "3"+7 ;  →  String str = "3"+"7";   →  String str = "37";

String str = 3+"7" ;  →  String str = "3"+"7";   →  String str = "37";

 

 

6. 문자열을 기본 타입으로 강제 타입 변환

 

- 문자열 → 기본 타입 변환 방법

String → byte String str = "10";
byte value = Byte.parseByte(str);
String → short String str = "100";
short value = Short.parseShort(str);
String → int String str = "1000";
int value = Int.parseInt(str);
String → long String str = "100000";
long value = Long.parseLong(str);
String → float String str = "12.34";
float value = Float.parseFloat(str);
String → double String str = "3.14";
double value = Double.parseDouble(str);
String → boolean String str = "true";
boolean value = Boolean.parseBoolean(str);

 

 

* 기본 타입 → 문자열

String str = String.valueOf(기본타입값);

 


● 변수와 시스템 입출력

 

1. 모니터로 변수값 출력하기

         system.         +          out.          +      println(리터럴 또는 변수)

시스템이 가지고 있는     출력 장치로         괄호 안의 내용을 출력하고 행을 바꿈              

 

- out의 메소드

println(내용); 괄호 안의 내용을 출력하고 행 바꾸기
print(내용); 괄호 안의 내용을 출력
printf("형식문자열", 값1, 값1, ...); 괄호 안의 첫 번째 문자열 형식대로 내용 출력

 

'Write it > Java' 카테고리의 다른 글

Java) Scanner  (3) 2025.08.06
Java) 변수와 타입_02  (1) 2025.07.21
Java) 변수와 타입_01  (0) 2025.07.21