728x90
사용방법
- Random 클래스
Random random = new Random();
int happynumber = random.nextInt(10)+1;
- Random.nextInt() 메서드
nextInt의 메서드는 조금 알아보면 재밌다.
소괄호 안의 인자값은 0부터 시작한 수의 갯수의 값(length) 이라고 보면되고 ,
(10) 은
0~9 까지의 수에서
+1 이라는 최소값을 줌으로서 , 한칸씩 옆으로 쉬프트 한 계산법이다.
1~10까지의 수를 말하게 된다.
(10) 만 사용하게 된다면 , 0~9 의 숫자 즉, 10 미만이지만
(10)+1 을 하게되면 1 이상 10 이하의 숫자가 된다.
이상 이하로만 계산하게 되면 계산이 달라질 수 있기 때문에 한번 생각해보면 어렵지 않게 접근할 수 있을것이다.
- Math.Random() 메서드
int happynumber = (int)(Math.random()*10)+1;
//* 뒤에는 최대값 + 뒤에는 최소값 사이의 임의 정수를 제공
random 메서드 또한 위와 같은 계산인데 ,
Math.random은 실수형으로 나옴으로 *10을 해주고 int형으로 형변환을 해준다.
(Math.random()*10)+1 라는 식에서 표현법이 다르니 주의하면 된다.
Scanner + Random + switch 를 이용한 예제
숫자 맞추기 게임
1~10 범위에서 숫자 하나를 입력받아
Random 클래스의 추출번호 와 일치하면 금메달
차이가 1 이면 은메달, 차이가 2면 동메달, 아니면 꽝
- Random 클래스를 이용
Scanner scanner=new Scanner(System.in);
//당첨번호 정하기 -> 임의의 수를 추출하는 메서드 (Random(클래스) / Math.Random(Math의 메서드))
Random random = new Random();
int happynumber = random.nextInt(10)+1;
System.out.println("1~10의 수를 입력하세요");
int mynumber = Integer.parseInt(scanner.nextLine());
switch (Math.abs(mynumber-happynumber)) { // 절대값을 나오게 하는 Math 의 메서드 abs
case 0:
System.out.println("금메달");
break;
case 1:
System.out.println("은메달");
break;
case 2:
System.out.println("동메달");
break;
default:
System.out.println("꽝");
break;
}
System.out.printf("입력번호는 %d , 당첨번호는 %d , 절대값 차는 %d", mynumber , happynumber , Math.abs(happynumber-mynumber));
scanner.close();
금메달 ! 올레 !
- Math.random 메서드 이용
Scanner scanner=new Scanner(System.in);
//Math.random은 실수형으로 나옴
int happynumber = (int)(Math.random()*10)+1;
System.out.println("1~10의 수를 입력하세요");
int mynumber = Integer.parseInt(scanner.nextLine());
switch (Math.abs(mynumber-happynumber)) { // 절대값을 나오게 하는 Math 의 메서드 abs
case 0:
System.out.println("금메달");
break;
case 1:
System.out.println("은메달");
break;
case 2:
System.out.println("동메달");
break;
default:
System.out.println("꽝");
break;
}
System.out.printf("입력번호는 %d , 당첨번호는 %d , 절대값 차는 %d", mynumber , happynumber , Math.abs(happynumber-mynumber));
scanner.close();
금메달이 나올때 까지 무한 루프를 만드는 예제
Scanner sc = new Scanner(System.in);
int count = 0;
Random random = new Random();
int happynumber = random.nextInt(10)+1;
while (true) {
System.out.println("1~10까지의 수를 입력하세요");
int newnumber = Integer.parseInt(sc.nextLine());
switch (Math.abs(happynumber-newnumber)) {
case 0:
System.out.println("금메달 종료 !" );
break;
case 1:
System.out.println("은메달 다시도전 !" );
break;
case 2:
System.out.println("동메달 다시도전 !" );
break;
default:
System.out.println("꽝 다시도전 !" );
break;
}
count++;
if(Math.abs(happynumber-newnumber)==0) {
System.out.printf("도전횟수 %d , 성공을 축하드립니다",count);
break;
}
}
'Developer > JAVA' 카테고리의 다른 글
JAVA , 배열 예제 (서치 알고리즘 , 정렬 알고리즘 ,Arrays) (0) | 2024.08.01 |
---|---|
JAVA, 배열 (0) | 2024.08.01 |
JAVA , 제어문 (반복문) 기초와 예제 (0) | 2024.07.31 |
JAVA , 제어문 (조건문) if / switch (0) | 2024.07.30 |
Java , 자바의 연산 (3) | 2024.07.22 |