Salangdung_i의 기록
JAVA 07 :: Random 난수 본문
이번에는 난수 Random에 대한 공부를 해볼 차례이다.
Random이란?
자바에서 난수를 생성하는 방법으로
Random r = new Random(); // 랜덤객체 생성
int i =r.nextInt(숫자); // i에 랜덤 숫자 대입
r.nextInt(숫자);에서 숫자에 들어가는 수를 5라고하면 0부터 4까지 총 5개의 정수가 랜덤으로 뽑히는 것이다.
가독성 좋게 r.nextInt(숫자)+1; 로 하여 1부터 내가 max값으로 지정하고 싶은 수까지 랜덤으로 뽑히게끔 만들어 사용한다.
먼저 r.nextInt(숫자) 를 이용해서 지정한 숫자사이에서 랜덤수가 추출되는지 확인해보자.
int num = r.nextInt(100); // 0~99사이의 랜덤수
0~9범위의 랜덤수 추출
int num1 = r.nextInt(9) + 1;// 0~8사이의 랜덤수
20~35범위의 랜덤수 추출
int num2 = r.nextInt(16) + 20;
2.0또는1범위의 랜덤수 추출
int num3 = r.nextInt(2);
public void randomTest() {
Random r = new Random();
int num = r.nextInt(100); // 0~99사이의 랜덤수
System.out.println("랜덤 수 : " + num);
// 0~9범위의 랜덤수 추출
int num1 = r.nextInt(9) + 1;// 0~8사이의 랜덤수
System.out.println("랜덤 수 : " + num1);
// 1.20~35범위의 랜덤수 추출
int num2 = r.nextInt(16) + 20;
System.out.println("랜덤 수 : " + num2);
// 2.0또는1범위의 랜덤수 추출
int num3 = r.nextInt(2);
System.out.println("랜덤 수 : " + num3);
}
*** Random 선얼 할때 ctrl + space 로 꼭!! import!! 잊지 말아야해요 ***
import java.util.Random;
범위안에서 랜덤수 들이 추출된 것을 확인할 수 있다.
그럼 예제를 통해 Ramdom 을 연습해보자.!!
동전 앞/뒤 맞추기 예제
==================Console==================
==========동전 앞/뒤 맞추기==========
숫자를 입력해주세요 (1.앞면/ 2.뒷면) : 1
정답!
==================Console==================
이때 주의할 점은 동전의 앞 뒤의로 확정되는 num1을 어디서 지정하냐는 것인데요. int num1 = r.nextInt(2) + 1; 이 구문 을 while 문 밖에 둔다면 한번 게임이 실행된 후 다음에 게임이 실행될 때도 동전의 앞뒤 숫자는 계속 같은 값을 갖게 됩니다.
따라서 while 문 안에 int num1 = r.nextInt(2) + 1; 을 해줘야 while 문이 돌때 마다 동전의 앞/뒤가 바뀌게 됩니다.
public void coin() {
Random r = new Random();
Scanner sc = new Scanner(System.in);
while (true) {
int num1 = r.nextInt(2) + 1;
System.out.println("===== 동전 앞/뒤 맞추기 ======");
System.out.println("숫자를 입력해주세요 (1.앞면/2.뒷면): ");
int num = sc.nextInt();
if (num1 == num) {
System.out.println("정답!");
} else {
System.out.println("땡!!!!!!!!");
}
}
}
가위바위 보 게임
==================Console==================
=== 가위 바위 보 게임 ===
숫자를 선택하세요 (1.가위/2.바위/3.보) : 1
======== 결과 =========
당신은 가위를 냈습니다.
컴퓨터는 보를 냈습니다.
======================
당신이 이겼습니다.ㅠ.ㅠ
==================Console==================
앞의 동전게임은 숫자를 입력받고 user가 앞/뒤 중 어떤 것을 입력했는지 다시 보여주는 구문이 없읍니다. 이번 가위바위보 게임에서는 switch문을 사용해서 입력받은 숫자를 문자 값으로 반환해서 user가 가위,바위,보 중 어떤 걸 선택했는지 알려주는 code를 추가하였습니다.
public void game() {
Random r = new Random();
Scanner sc = new Scanner(System.in);
int num1 = r.nextInt(3) + 1;
String str1 = "";
String str2 = "";
System.out.println("=== 가위 바위 보 게임 === ");
System.out.println("숫자를 선택하세요 (1.가위/2.바위/3.보) :");
int num2 = sc.nextInt();
System.out.println("======== 결과 =========");
switch (num1) {
case 1:
str1 = "가위";
break;
case 2:
str1 = "바위";
break;
case 3:
str1 = "보";
break;
}
switch (num2) {
case 1:
str2 = "가위";
break;
case 2:
str2 = "바위";
break;
case 3:
str2 = "보";
break;
}
System.out.printf("당신은 %s를 냈습니다.\n", str2);
System.out.printf("컴퓨터는 %s를 냈습니다.\n", str1);
System.out.println("====================");
if (num1 == num2) {
System.out.println("비겼습니다.");
} else if ((num1 == 3 && num2 == 1) || (num1 == 2 && num2 == 3) || (num1 == 1 && num2 == 2)) {
System.out.println("당신이 이겼습니다.ㅠ.ㅠ");
} else {
System.out.println("당신이 졌습니다.~.~");
}
}
"Icon made by Pixel perfect from www.flaticon.com"
'BACKEND > JAVA' 카테고리의 다른 글
JAVA 09 :: Array 예제 (0) | 2019.08.28 |
---|---|
JAVA 08 :: Array배열 (0) | 2019.08.26 |
JAVA 06 :: For문 연습문제 (0) | 2019.08.24 |
JAVA 13 :: 자바로 만드는 게임(숫자업다운) (0) | 2019.08.24 |
JAVA 12 :: 자바로 만드는 게임(야바위 게임) (0) | 2019.08.24 |