[JAVA] 자바 - Math 및 Random 클래스
by mini_min[JAVA]
자바 - Math 클래스
✔️ Math 클래스란?
수학과 관련된 메소드를 제공하는 클래스!
생성자가 있지만, private 으로 선언되어 외부에서 객체 생성불가!!!!
⭕ 모든 메소드가 static 으로 선언되어 있어서 객체 선언하지 않고 바로 사용 가능하고, 다만, 외부에서는 객체 생성하지 않는다는 것을 지켜야한다.
public static void main(String[] args) {
double a;
System.out.println(Math.PI);
a = Math.sin(30.0 * Math.PI/180); //각도는 라디안으로
System.out.println(a);
a = Math.sqrt(2.0);
System.out.println(a);
a = Math.floor(12.77);
System.out.println(a);//절삭
a = Math.pow(2, 10);
System.out.println(a);
a = Math.random(); //< =난수 < 1
System.out.println(a);
}
💡 Math 클래스
sin 메소드에서 각도는 라디안으로 줘야한다.
sqrt() 메소드는 a라는 인자의 제곱근을 구하여 반환한다.
floor() 메소드는 a 인자보다 작거나 가장 가까운 정수 반환!
ex) 10.6 은 11로 반환
pow() 메소드는 a 인자, b인자를 받아서 a의 b승을 구한다.
✔️ Random 클래스란?
여러 형태의 난수를 제공한다! Math 클래스의 메소드인 random() 도 난수를 제공하는 메소드지만, 해당 메소드는 실수만 발생하기 때문에 여러 형태의 난수를 반환하려면 Random 클래스를 사용한다.
// 5자리 난수를 반환할 때, Random 클래스 사용
public static String toNumer5() //가변적인 문자열이라 스트링빌더
StringBuilder sb = new StringBuilder();
Random rd = new Random();
int n;
for(int i=0; i<5; i++)
n = rd.nextInt(10) // 0~9 사이 난수!
sb.append(Integer.toString(n));
//난수인 n을 문자열로 변환해서 스트링빌더 객체에 추가
return sb.toString();
💡 객체.nextInt(n);
= 랜덤 클래스에서 0에서 n 사이의 난수를 발생시킬 때 사용
✔️ 만약, 서로 다른 3자리 난수 뽑고 싶을 때는?
먼저, 랜덤 함수로 1~9 사이 랜덤 클래스 사용한다.
가변적인 스트링이니까, 스트링 빌더 객체 생성 및 사용한다.
StirngBuilder sb = new StringBuilder();
Random rd = new Random();
Stirng n;
이후, 3번동안 난수를 뽑을 for 문을 생성한다.
1~9까지 난수를 랜덤으로 추출하는 것이기 때문에 0~9 에서 +1을 해서 1~9로 반환한다.
for(int i=0; i<3; i++)
n = Integer.toString(rd.nextInt(9)+1);
이제 중복되는 난수 값이 출력됐을 때, 다시 이전 순서로 돌아가도록 코드를 짜야한다.
💡 sb 스트링빌더 값에 없다면, -1이 뜨고, 있다면 양수가 나올 것이기 때문에 있으면 순서를 돌려놓는다.
if (sb.indexOf(n)>=0)
i--; //이전 순서로 돌려놓기
continue;
//문제없을시, 난수 n값 추가
sb.append(n);
'Java' 카테고리의 다른 글
[JAVA] 자바 - 상속과 생성자 (super, this) (0) | 2022.07.25 |
---|---|
[JAVA] 자바 - 상속 관계 정의 (super/sub 클래스) (0) | 2022.07.25 |
[JAVA] 자바 - Date 클래스 (getTime, SimpleDateFormat) (0) | 2022.07.24 |
[JAVA] 자바 - Stirng 클래스 Quiz 풀이 모음(2) ⭐⭐ (0) | 2022.07.24 |
[JAVA] 자바 - Stirng 클래스 Quiz 풀이 모음(1) ⭐⭐ (0) | 2022.07.24 |
블로그의 정보
개발자 미니민의 개발로그
mini_min