반응형
Math.random()
Math 클래스의 random() 는 0.0 이상 1.0 미만의 난수를 생성하여, double 값을 반환하는 함수입니다.
// Math 클래스의 random() 메서드
// 메서드: 어떤 출력(리턴 타입) => double (0.0 ~ 1.0)
System.out.println(Math.random() * 10);
// 결과 값에 10을 곱해서 정수 부분을 만듦 (0 ~ 10)
System.out.println(Math.random() * 10);
// 결과 값에 45를 곱해서 정수 부분을 만듦 (0 ~ 45)
System.out.println(Math.random() * 45);
// 실수(double) => 정수(int) : 형변환(type conversion)
System.out.println((int) (Math.random() * 10)); // 0 이상 9 이하의 정수
System.out.println((int) (Math.random() * 10) + 1); // 1 이상 10 이하의 정수
System.out.println((int) (Math.random() * 45) + 1); // 1 이상 45 이하의 정수
따라서 위 코드와 같이 형변환 등을 통해, 원하는 정수 범위 내에서 난수를 생성할 수 있습니다.
형 변환 (type conversion)
int는 4byte, double은 8byte의 메모리를 가지는 자료형입니다. 따라서 int형의 변수의 값을 double형의 변수의 값에 대입할 때는 문제가 되지 않지만, double형의 변수의 값을 int형의 변수의 값에 대입할 때 문제가 생깁니다.
이 때 개발자의 책임 하에 강제적인 형 변환을 할 수 있습니다.
int int2 = double1; // 형변환 에러
int int2 = (int) double1; // 강제 형 변환
위 코드에서 첫 번째 문장은 형 변환 에러가 나기 때문에, 두 번째 문장과 같이 소괄호(()) 안에 변환하고자 하는 타입을 기재하여 강제적으로 변환할 수 있습니다.
Promotion (자동 형변환 / 묵시적 형변환)
Casting (강제 형변환 / 명시적 형변환)
배운 점
반응형
'All Categories > BE & Java' 카테고리의 다른 글
개발일지 #9 - Java 배열(Array), 정렬(sort) (0) | 2023.12.11 |
---|---|
개발일지 #8 - Java 자료형, 문자열(String) (0) | 2023.12.11 |
개발일지 #6 - Java 반복문 - for, while (2) | 2023.12.08 |
개발일지 #5 - Java switch case, 지역 변수 / 전역 변수 (0) | 2023.12.05 |
개발일지 #4 - Java Scanner, 제어문, Dead Code (1) | 2023.12.04 |