본문 바로가기
> 프로그래밍 언어/JAVA

[그림으로 배우는 자바, part1]: 04 타입과 형 변환

by 자몽주스 2023. 1. 31.
728x90

그림으로 배우는 자바,

파트1: 입문!

메소드와 조건문 - 타입과 형변환

참고 사이트:

자바, 입문하기! | CloudStudying

 

타입과 형 변환!

<앞에 부분 복습>

-화씨 온도를 섭씨 온도로 변환-

main 메소드 첫 줄에서

사용자의 입력 문자열인 77.0

실수형 77.0으로 변환한다

<타입관련 주의점>

1) 나눗셈 주의

a 의 값 = 2.5

변수 b 의 값 = 2 (정수)

변수 c 의 값

= 2.5 (x)

= 2

int 끼리의 연산 결과는 int

따라서 5 나누기 2 는

int끼리의 연산이므로

실수가 나오지 않음

2) 타입 불일치주의

대입할

변수의 타입이 일치해야 함

값과 타입이 불일치하면 에러

-해결방법-

3) 형 변환 주의

타입을 바꾸는 것

자동 변환 / 직접 변환

 

타입 불일치일 경우에

대입이 불가하지만, 

자동 변환이 되는 경우엔

타입이 달라도 대입 가능

정수 값 실수형 변수에 대입하고 있는 모습

하지만, 정상 동작 한다

정수 2실수 2.0으로 봐도 무관하기 때문

실수 값정수형 변수에 대입하면,

에러 발생

실수>정수

이기 문에 실수를 정수가 담아낼 수 없음.

 

만약, 소수점 이하 값 0.4를 버리고

정수 값만이라도 정수형변수에 담고싶으면

직접 변환(Casting)을 사용해야 한다

Casting 사용방법:

변환대상 앞 쪽에 타입을 명시해주면 된다

(int)

숫자끼리 타입 변환할 때 사용 가능

요약

printf(), 숫자 출력하기

<정수값 출력하기>

B 방법에 쓰여진 %d

age에 있는 변수의 값

%d로 위치하게 된다

 

고로 a 방법의 결과b 방법의 결과는 동일

 

%d:

하나의 출력 문자열의

변수를 삽입하는 형태

 

뒤에 오는 변수 age

정수형 이라는 의미를 갖음

예제

7 나누기 2는 3입니다

를 출력하고 싶을 때,

%d 에 값을 대입하려면

뒤에 변수를 적어줌으로서

대입시켜준다

result%d

즉, 정수형으로 해석돼서

출력 문자열에 삽입이 됨.

printf() 메소드

두 개 이상의 변수 삽입도 가능

%d 에 각각,

month와 day가 들어감

 

첫 번째 %d 에는 

첫 번째 변수와 연결됨

 

두 번째는 두 번 째 끼리

예제

<실수값 출력하기>

%d - 정수값 출력

%f - 실수값 출력

 

1) 변수를 먼저 생성하고 (mathScore / pi)

2) 결과를 출력 ("%d" , "%f")

헷갈렸던 예제

printf(), 타입 불일치

<문자열 삽입 출력>

%s 를 사용

printf() 의 경우

println() 과 달리

줄 내림이 자동으로 안된다

 

고로, 엔터를 표현하기 위해선

\n 을 사용한다

- 소숫점 자릿수 제한 -

실수값을 출력할 떄

소수점 이하 자리수가 엄청 긴 경우

자리수를 제한할 수 있다

기본적으로 실수를 출력할 땐,

%f를 사용하지만

자릿수를 제한할 땐,

%와 f 사이에

. 을 쓰고

출력하려는 소수점 자릿수를 쓰면 된다

("%.2f\n")

 

.2 를 쓰면

소수점 이하 두자리까지만

쓰겠다는 뜻

printf(), 캐스팅과 형 변환

이러한 형식들도

(%d, %f, %s)

타입이 일치해야 함

pi double(실수) 타입인데

%f 가 아닌 %d 를 사용함

<해결 법>

1) 출력 형식을 올바르게 바꿔준다

2) 출력 변수의 타입을 강제변환(캐스팅) 해준다

%d 에 맞게

double 타입 pi 를 캐스팅 해준다

(pi 앞에다가 강제변환할 타입을 써 줌)

원래는 "37"이 나오지만

3+7 = 10이 나오게 하려면

형변환을 통해서 계산할 수 있다

 

문자열정수로 바꿀 때 쓰는 것

Integer.parseInt

사용한다

실수

Double.parseDouble

사용

헷갈렸던 예제

마지막 결과 출력

문자열 "" 부분이 헷갈렸다

리뷰! 원의 넓이 구하기!

원주율 값 손쉽게 쓸 수 있는

Math.PI

절대값 - Math.abs();

반올림 - Math.round();

요약

printf() 메소드

문자열의 특정 값을 삽입할 수 있음

삽입 시 타입에 따른 출력 형식을 지정해야 함

 

 

728x90