그림으로 배우는 자바,
파트1: 입문!
메소드와 조건문 - 타입과 형변환
참고 사이트:
타입과 형 변환!
<앞에 부분 복습>
-화씨 온도를 섭씨 온도로 변환-
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() 메소드
문자열의 특정 값을 삽입할 수 있음
삽입 시 타입에 따른 출력 형식을 지정해야 함
'> 프로그래밍 언어 > JAVA' 카테고리의 다른 글
[그림으로 배우는 자바, part1]: 05 메소드 (0) | 2023.02.06 |
---|---|
[18.1] IO 패키지 소개 (0) | 2023.02.01 |
[그림으로 배우는 자바, part1]: 03 변수의 타입 그리고 연산자 (0) | 2023.01.29 |
[그림으로 배우는 자바, part1]: 02 자바의 특징과 객체지향 (0) | 2023.01.28 |
[그림으로 배우는 자바, part1]: 01 자바 프로그래밍이란? (0) | 2023.01.28 |