Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Everything has an expiration date

095 - Java Random : nextInt() 0부터 ~ 입력된 수 - 1까지 중의 난수 하나를 발생시키는 메소드 본문

[Java]/Program source (java)

095 - Java Random : nextInt() 0부터 ~ 입력된 수 - 1까지 중의 난수 하나를 발생시키는 메소드

Jelly-fish 2023. 9. 7. 10:00
/*==============================================
	■■■ 배열 ■■■	
	- 배열과 난수 처리(※ Random 클래스 활용)
================================================*/


// 사용자로부터 임의의 정수를 입력받아
// 그 수 만큼 난수(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.length; 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
		  37   3   7  74  60  97  42  10  60   3
		계속하려면 아무 키나 누르십시오 . . .
		*/

		/*
		발생시킬 난수의 개수 입력 : 8
		  58  55  66  53  51  82  91  20
		계속하려면 아무 키나 누르십시오 . . .
		*/


		//--------------------------------------------- 여기까지 수행하면 배열 구성 완료~!!!

		// 가장 작은 값, 가장 큰 값 출력~!!!
		int min=arr[0];
		int max=arr[0];
		
		for (int i = 1; i < arr.length; i++)
		{
			if (min > arr[i])
			{
				min = arr[i];
			}

			if (max < arr[i])
			{
				max = arr[i];
			}
		}

		System.out.print("min : " + min + ", max : " + max + "\n");

	}
}