반응형
Random 클래스
C#에서 랜덤값을 만들려면 Random 클래스를 사용한다. 클래스는 참조형이므로 다음과 같이 new 키워드를 사용하여 객체를 생성한다.
Random r = new Random(); // Random 객체 r 생성
Next() 메서드는 다음과 같이 파라미터의 개수에 따라 세 가지로 중복되어 있다.
int x = r.Next(); // 0~2,147,483,647
int y = r.Next(100); // 0~99 사이의 값 리턴
int z = r.Next(1, 7); // 1~6 사이의 값 리턴(예: 주사위 숫자)
이 외에 NextDouble()은 0.0 이상 1.0 미만의 실수를 리턴한다. 이 메서드들은 한번 호출할 때 하나씩의 랜덤값이 리턴된다. 그러나 0~255까지의 바이트 숫자를 리턴하는 NextBytes()는 독특하게 한번 호출로 배열 전체를 랜덤 숫자로 채워준다.
using System;
namespace _200200820_004
{
class Program
{
static void Main(string[] args)
{
Random r = new Random();
Console.Write("{0, -16}", "Random Bytes");
Byte[] b = new byte[5];
r.NextBytes(b); // 한번 호출로 랜덤 값으로 채움
foreach (var x in b)
Console.Write("{0,12}", x); // 12자리로 출력
Console.WriteLine();
Console.Write("{0,-16}", "Random Double");
double[] d = new double[5];
for (int i = 0; i < 5; i++)
d[i] = r.NextDouble();
foreach (var x in d)
Console.Write("{0,12:F8}", x); // 12자리, 소수점 아래 8자리로 출력
Console.WriteLine();
Console.Write("{0, -16}", "Random Int32");
int[] a = new int[5];
for (int i = 0; i < 5; i++) // 5개 int 랜덤값 생성 저장
a[i] = r.Next();
PrintArray(a);
Console.Write("{0, -16}", "Random 0~99");
int[] v = new int[5];
for (int i = 0; i < 5; i++) // 5개 0~99의 랜덤값 생성 저장
v[i] = r.Next(100);
PrintArray(v);
}
private static void PrintArray(int[] v)
{
foreach (var value in v)
Console.Write("{0,12}", value);
Console.WriteLine();
}
}
}
실행화면. 실행할때마다 랜덤값이 할당되므로 결과값이 다르게 출력될 것이다.
반응형
'개발자과정준비 > C#' 카테고리의 다른 글
[C#] List<T> 컬렉션, List<T>와 배열의 정렬 (0) | 2020.08.28 |
---|---|
[C#] 컬렉션, ArrayList (0) | 2020.08.24 |
[C#] 제네릭 프로그래밍(메서드, 클래스) (2) | 2020.08.19 |
C# 복습 (4) (0) | 2020.07.20 |
C# 복습 (3) (0) | 2020.07.14 |