random
//java.lang.math 클래스는 수학계산에 사용하는 메소드를 제공
//math클래스가 제공하는 메소드는 모두 정적메소드이므로 math클래스로 바로 사용 가능
//즉 새로 생성할 필요없이 바로 사용할 수 있다 ex)math.abs(-5)==>5
//Math.random()함수는 0.0이상에서 1.0미만의 double형 실수값을 반환
// 코드 리턴값
//절대값: int Math.abs(-10) 10 /int형으로 반환,음수 양수 다 가능
//올림값: double v=Math.ceil(5.2) 6.0 /double형으로 반환
//최대값: int a=Math.max(2,3) 3
//랜덤값: double b=Math.random() 0.0<=b<1.0 /double형으로 반환
//반올림값: long b=Math.round(5.3) 5
//0부터가 아닌 1부터 시작하게 되면 뒤에 +1을 붙임
System.out.println("10개의 난수 발생");
for(int i=1;i<=10;i++)
{
double n=Math.random();
System.out.println(n);
} //난수이기에 1.0은 안 넘으며 실행할 때마다 숫자는 계속 바뀜
System.out.println("---------------------------");
System.out.println("0~9사이의 난수 발생");
for(int i=1;i<=10;i++)
{
int n=(int)(Math.random()*10); //형변환
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("0~99사이의 난수 발생");
for(int i=1;i<=100;i++)
{
int n=(int)(Math.random()*100);
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("1~10사이의 난수 발생");
for(int i=1;i<=10;i++)
{
int n=(int)(Math.random()*10)+1;
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("1~100사이의 난수 발생");
for(int i=1;i<=100;i++)
{
int n=(int)(Math.random()*100)+1;
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("1~10사이의 난수 발생");
for(int i=1;i<=10;i++)
{
int n=(int)(Math.random()*10)+1;
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("1~45사이의 난수 발생");
for(int i=1;i<=45;i++)
{
int n=(int)(Math.random()*45)+1;
System.out.println(n);
}
System.out.println("---------------------------");
System.out.println("65~90사이의 난수 발생");
for(int i=65;i<=90;i++)
{
int n=(int)(Math.random()*26)+65; //*뒤에 25가 아닌 26
//int n=(int)(Math.random()*m)+n;
//n~(m+n-1)
System.out.println(n);
}
//결과
10개의 난수 발생
0.45723374826049534
0.7748638270647505
0.3369046007623887
0.2714731756648757
0.4286649290235327
0.19690198017694494
0.053326111928887254
0.051473709405379875
0.30756074954268464
0.4514126243311123
---------------------------
0~9사이의 난수 발생
8
6
4
7
9
8
7
7
8
4
---------------------------
0~99사이의 난수 발생
55
50
72
1
21
59
9
75
81
84
75
40
89
94
17
3
56
43
6
17
3
47
90
67
86
72
58
6
47
10
14
68
36
84
89
79
90
64
36
19
44
26
57
78
17
55
66
97
60
49
74
93
6
24
73
8
33
32
48
39
70
24
82
40
3
96
35
45
27
16
78
72
44
18
10
23
82
26
65
60
90
52
20
42
37
13
32
15
34
90
2
53
54
64
43
42
71
30
55
40
---------------------------
1~10사이의 난수 발생
4
4
4
3
5
5
2
8
3
9
---------------------------
1~100사이의 난수 발생
78
24
95
31
47
22
68
99
8
19
40
62
20
86
100
58
13
4
24
76
35
54
69
30
17
51
16
12
59
39
86
9
12
85
48
35
51
99
71
56
43
98
25
9
78
58
30
1
33
92
39
82
20
3
30
58
53
1
76
66
97
39
58
71
93
17
100
30
66
40
65
13
80
44
44
42
76
25
40
86
65
43
55
15
68
33
64
91
57
38
57
60
69
98
39
86
73
2
43
50
---------------------------
1~10사이의 난수 발생
2
3
9
4
7
6
1
3
10
4
---------------------------
1~45사이의 난수 발생
38
17
5
2
20
12
7
18
15
11
29
29
40
4
43
45
15
29
29
43
4
40
43
36
44
28
43
18
25
14
43
21
31
42
24
1
12
24
32
10
8
1
39
19
7
---------------------------
65~90사이의 난수 발생
72
83
66
81
87
86
90
87
66
87
76
87
65
79
84
76
89
70
66
89
87
69
77
89
75
76
----------------------
(예제)
//몇 번만에 정답을 맞출지 range를 모르기에 while(true) 사용
//난수가 77이라 할 때
//1이라고 하면 55보다 큽니다
//88이라 하면 80보다 작습니다
//77이라 하면 정답입니다
//숫자맞추기 게임 종료
Scanner sc=new Scanner(System.in);
int rnd=(int)(Math.random()*100)+1; //1~100까지의 난수식
int su=0; //입력할 값(정답이라고 추측되는 수
int cnt=0;
while(true)
{
cnt++;
System.out.print(cnt+" : ");
su=sc.nextInt();
if(su>rnd)
System.out.println(su+"보다 작습니다");
else if(su<rnd)
System.out.println(su+"보다 큽니다");
else
{
System.out.println("맞아요 정답은 "+rnd+"입니다");
break;
}
}
System.out.println("게임 종료");
'JAVA' 카테고리의 다른 글
210806_startswith,equals (0) | 2021.08.06 |
---|---|
210806_예제/for,while (0) | 2021.08.06 |
210805_중첩문,다중for문 (0) | 2021.08.05 |
210805_while&char,dowhile,while(true) (0) | 2021.08.05 |
210805_합계,break,continue (0) | 2021.08.05 |