본문 바로가기

Java/information

[자바/JAVA] 형변환과 시스템 입출력

작은값을 큰값 공간으로 형변환을 할때는 자동형변환이 되지만
큰값을 작은공간에 값으로 넣으려고할때는 강제형변환을 해주어야한다.

int v2 - 1e2;
지수 e는 Exponenital의 약자이다. 공학에서 아주 큰 숫자 혹은 아주 작은 숫자를 간단하게 표현하기 위해서 사용한다.
10^2에서 2를 지수라 한다. 지수 표기법은 계수 뒤에 e(E)를 붙이고 위에 지수값을 넣으면 된다.
지수 표기법에서는 e=10을 의미한다. ex)0.000002를 지수로 표기하면 2e6(2*10^-6)가 된다.
1e2=1*10^2 ==> 100.0이라서 실수이다.

b는 byte형으로 선언이 되었지만 -를 곱하는 연산에서 정수로 연산이 되기 때문에 byte형의 b를 담으려고 하면 에러가 난다.

char 타입보다 허용 범위가 작은 byte 타입은 char 타입으로 자동 타입 변환될 수 없다. 왜냐하면 char 타입의 허용 범위는 
음수를 포함하지 않는데, byte 타입은 음수를 포함하기 때문이다.

자동 타입 변환 : 자동으로 타입이 변환되는 것을 말한다. 값의 허용 범위가 작은 타입이 허용범위가 큰 타입으로 저장될 때 발생한다.
강제 타입 변환 : 강제로 타입을 변환하는 것을 말한다. 값의 허용 범위가 큰 타입을 허용 범위가 작은 타입으로 쪼개어서 저장하는것을 말한다.
강제 형 변환시에는 데이터가 왜곡될 수 있음에 주의한다.
계산식에 리터럴이 포함되어 있는 경우, 기본저으로 정수 데이터는 int형으로, 실수 데이터는 double형으로 간주하여 계산한다.
문자열 결합 연산 : 문자열과 + 연산을 하면 다른 피연산자도 문자열로 변환되어 문자열 결합이 일어난다.

 

문자열은 기본데이터 타입이 아니고 객체여서 주소값을 변수에 가지고 있으므로 char 타입인 기본타입으로 변환하려고 하면 강제형변환이 안된다.

 

리터럴과 문자형을 더하려고 하면 정수로 변환되어 계산되므로 int 타입의 변수에 담아야 한다. 아니면 정수를 다시 char형으로 강제 타입 변환을 하여야 문자형으로 출력이 가능하다.

 

문자열이 뒤에 있을때는 연산이 먼저 되고 문자열로 받아들여진다. 하지만 사이에 있거나 문자열이 먼저 나온다면 모든 정수를 다 문자열로 받아들여진다.


사용자가 입력한 숫자는 무조건 문자열로 인식하기에 정수로 변환하려면 Integer.paresInt("문자열") 구문을 사용해야 한다!
문자열이 같은 것을 비교할 때에는 equls("문자열") 메소드가 필요하다.
Double이란 클래스는 내장형 클래스로 따로 import 하지않아도 사용 가능하다.
문자열을 double형 실수로 바꾸고 싶을 때 Double.parseDouble("문자열")을 이용하여 실수로 변환이 가능하다.

변수와 시스템 입출력
System.out은 시스템의 표준 출력 장치를 말한다. out이 표준 출력 장치라면 표준 입력 장치는 in을 사용한다.
System.out.println() : 괄호에 주어진 매개값을 모니터로 출력하고 개행 한다.
Syste m.out.print() : 괄호에 주어진 매개값을 모니터로 출력만 하고 개행을 하지 않는다.
Syste m.out.printf() : 괄호에 주어진 형식대로 출력한다.
Syste m.in.read() : 키보드에서 입력된 키코드를 읽는다.
Scanner() : Syste m.in.read()는 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없다. 키보드로부터 입력된
내용을 통 문자열로 읽기 위해서 Scanner를 사용할 수 있다.
scannerValue.nextLine(); //문자열 모두 입력받을 때 사용
scannerValue.next(); //단어 하나만 입력받을 때 사용
등등 다른 타입의 값을 입력받고싶을때는 next뒤에 원하는 타입의 이름을 적는다.
ex) nextShort();, nextInt();, nextDouble(); 등








'Java > information' 카테고리의 다른 글

[자바/JAVA] 반복문  (0) 2023.04.06
[자바/JAVA] 조건문  (0) 2023.04.04
[자바/JAVA] 상수와 여러 연산자들  (0) 2023.03.29
[자바/JAVA] 자바의 기본 자료형  (0) 2023.03.27
[자바/JAVA] 자바란  (0) 2023.03.23