Categories: Java 언어Korean

Java 총 정리[19. Random]

Random

여러분들이 지금 문제 풀기를 하시면 형식에 맞춰지고 틀에 갇힌 느낌에 문제들을 풀고 있다고 느끼시지 않나요? 입력과 출력을 통한 기본적이고 중요한 프로그래밍 공부지만 뭔가 재미가 있는 요소가 있으면 문제를 만들고 테스트 할 때 좋다고 느껴지시지 않나요? 저 또한 경직된 문제를 푼다면 지칠 수도 있다고 생각을 하고 있습니다.

이 기능은 문제를 좀 더 풍성하게도 하지만 상황에 따라 필수적으로 사용될 수 도 있습니다. 예를 들어 내가 생각하는 수 맞추기와 같은 보여지지 않고 숨기는 것을 맞추거나 운을 정하는 프로그램을 만들 때 컴퓨터가 무작위 수를 제공을 하는 방법이 있다면 좋지 않을 까요? 이 글을 끝까지 읽는다면 컴퓨터가 무작위 수를 주는 방법을 알 수 있습니다.

Java언어에서 무작위 수를 제공을 해주는 기능은 Random을 통해서 사용을 하 실 수 있습니다. 사용 방법이나 여러 조합을 통해 나올 수 있는 수를 제어 하여 원하는 무작위 수를 만들 수 있습니다. 이 글을 끝까지 읽으신다면 Random을 자유롭게 사용을 하실 수 있습니다.

Random 사용

Java에서 제공되는 Random을 사용을 하려면 우선 Random을 import를 해야합니다. 그리고 Ramdom을 사용하기 위한 객체 생성 이후 그 객체를 통해 기능을 불러 사용을 하면 되는데 여러가지 기능이 있지만 nextInt()만 사용을 잘 하시면 충분 합니다. 다른 기능이 필요한 경우에는 eclipse에서 다른 기능들의 내용을 읽어 보시고 사용을 하시거나 또는 인터넷에서 참고를 해서 사용을 하면 됩니다.

Random 소스 및 실행

    
import java.util.Random;

public class RandomTest {

   public static void main(String[] args) {
 // TODO Auto-generated method stub
 Random r = new Random(); //Random을 import 이후에 Random 객체를 생성

 int num = r.nextInt(10); //0~9까지 난수 값을 정수 변수 num에 대입
 int num1 = r.nextInt(10) + 1; //1~10까지 난수 값을 정수 변수 num1에 대입
 //1~6주사위 난수 만들기
 int dice = r.nextInt(6) + 1; // 1~6까지 난수 값을 정수 변수 dice에 대입
  
 System.out.println("첫번째 : "+num);
 System.out.println("두번째 : "+num1);
 System.out.println("세번째 : "+dice);
  
   }
}
    

위의 소스와 결과를 보면 

  1. Random 객체 생성
  2. nextInt(정수) 선언
  3. 필요시 연산자를 이용해 나오는 무작위 수에 값을 변경
  4. 무작위 수를 정수 변수에 담는다.

nextInt(정수)를 보면 소괄호 안에 있는 정수의 미만 값만 무작위 수를 주는 것을 알 수 있습니다. 시작은 당연히 0부터 시작을 합니다.

이런 동작으로 무작위 수를 만들면 무작위 수 맞추기 게임 또는 뽑기 같은 게임을 만들 수 있습니다.

※ 무작위 수 나오는 범위는 조금의 계산을 통하면 만들 수 있습니다. 

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

8개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

9개월 ago

This website uses cookies.