📚 Study/Java
JAVA :: Test095_배열과 난수 처리(Random 클래스)
bono-hye
2023. 9. 12. 00:03
○ 실습
사용자로부터 임의의 정수를 입력받아
그 수 만큼 난수 (1~100)를 발생시켜 배열에 담고 배열에 담겨있는 데이터들 중
가장 큰 값과 가장 작은 값을 선택하여
결과를 출력하는 프로그램을 구현한다.
실행 예)
발생시킬 난수의 갯수 입력 : 10
50 7 24 81 72 45 61 38 1 99 → 무작위로 발생한 정수들...
(int[] arr = {50 7 24 81 72 45 61 38 1 99} → 배열에 담아내기(배열 구성))
가장 큰 값 : 99, 가장 작은 수 : 1
계속하려면 아무 키나 누르세요...
import java.util.Scanner;
import java.util.Random;
public class Test095
{
public static void main(String[] args)
{
// Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in);
// 주요 변수 선언
int size; //-- 사용자의 입력값을 담아낼 변수
// 안내 메세지 출력
System.out.print("발생시킬 난수의 갯수 입력 : ");
size = sc.nextInt();
// 입력받은 size 만큼의 배열방 만들기(배열 길이)
// (배열 선언 및 메모리 할당)
int[] arr = new int[size];
// 무작위 정수(난수)를 발생시키기 위해서는
// 난수 발생 전용 객체가 필요하다.
// → 『java.util.Random』
Random rd = new Random();
//-- Random 인스턴스 생성
// ※ Random 클래스의 『nextInt()』 메소드
// 0 ~ 매개변수로 넘겨받은 정수 n~1 까지의 수 중
// 무작위 정수(난수) 1개를 발생시킨다.
// ex) rd.nextInt(10); //-- 0 ~ 9 중 난수 1개 발생
// 테스트(확인)
//System.out.println("발생한 난수 : " + rd.nextInt(10));
//-- 0 ~ 9 까지의 범위 내에서 무작위 정수 한 개 발생~!!!
// 배열 구성
//for (int i=0;i<arr.lnegth ;i++ )
for (int i=0;i<size ;i++ )
{
//rd.nextInt(101);
//-- 0 ~ 100 중 1개
//rd.nextInt(100);
//-- 0 ~ 99 중 1개
arr[i] = rd.nextInt(100) + 1;
// ---------------
// 0 ~ 99
// --------------------
// 1 ~ 100
}
// 테스트 → 구성된 배열의 전체 요소 출력
for (int i=0;i<arr.length ;i++ )
{
System.out.printf("%4d", arr[i]);
}
System.out.println();
//--==> 발생시킬 난수의 갯수 입력 : 10
// 56 63 42 13 72 6 58 9 73 68
// 계속하려면 아무 키나 누르십시오 . . .
//--==>> 발생시킬 난수의 갯수 입력 : 8
// 50 82 59 93 65 7 4 58
// 계속하려면 아무 키나 누르십시오 . . .
//---------------------------------------------------여기까지 수행하면 배열 구성 완료~!!
// 가장 작은 값, 가장 큰 값 출력~!!!
int min, max; //-- 최소값, 최대값 변수 생성
min=max=arr[0]; //-- 배열의 가장 앞에 있는 값이 최소값, 최대값이라 가정하고 구성
for (int i=1;i<arr.length ;i++ ) //-- i=0에는 min, max 값이 들어있다고 가정하였으니 i=1 부터 비교
{
if (min>arr[i])
{
min = arr[i];
}
if (max<arr[i])
{
max = arr[i];
}
}
System.out.printf("가장 큰 값 → %d, 가장 작은 값 → %d\n",max, min );
}
}