이번 포스팅에서는 C#에서 랜덤값을 만들어 주는 Random 클래스에 대해서 정리했습니다.
Random 클래스 객체 생성
C#에서 랜덤 값을 만들려면 아래와 같이 Random 클래스의 객체를 생성해야 합니다.
Random rand = new Random(); // 랜덤 객체 생성
Next() 메서드
Random 클래스는 int형, byte형, double형과 같이 타입별로 랜덤값을 생성시킬 수 있는 메서드들이 있습니다. 다음 예는 int형에 대한 랜덤값을 생성시키는 Next() 메서드의 사용법입니다.
using System;
using System.Data;
namespace Random_exam
{
internal class Program
{
static void Main(string[] args)
{
Random rand = new Random(); // 랜덤 객체 생성
int x = rand.Next(); // 0 ~ int.MaxValue 까지 난수 발생
int y = rand.Next(100); // 0 ~ 99까지 난수 발생
int z = rand.Next(1, 7); // 1 ~ 6까지 난수 발생
Console.WriteLine("0 ~ int.MaxValue 까지 난수 : {0}",x);
Console.WriteLine("0 ~ 99 까지 난수 : {0}", y);
Console.WriteLine("0 ~ 6 까지 난수 : {0}", z);
}
}
}
결과
0 ~ int.MaxValue 까지 난수 : 775500063
0 ~ 99 까지 난수 : 13
0 ~ 6 까지 난수 : 3
NextDouble() 메서드
다음은 double형에 대해서 랜덤값을 발생시키는 NextDouble() 메서드입니다. 이 메서드는 0.0 이상 1.0 미만의 실수를 생성합니다. 아래는 5개의 double형 랜덤값을 생성하여 출력하는 예제입니다.
using System;
using System.Data;
namespace Random_exam
{
internal class Program
{
static void Main(string[] args)
{
Random rand = new Random(); // 랜덤 객체 생성
double[] d = new double[5];
for(int i = 0; i < 5; i++)
{
d[i] = rand.NextDouble();
Console.WriteLine("double형 랜덤값[{0}] : {1}", i, d[i]);
}
}
}
}
결과
double형 랜덤값[0] : 0.274586562660796
double형 랜덤값[1] : 0.692264330430079
double형 랜덤값[2] : 0.0524089993221727
double형 랜덤값[3] : 0.884871699328009
double형 랜덤값[4] : 0.735656784724284
NextByte() 메서드
마지막으로 NextBytes() 메서드입니다. 이 메서드는 독특하게 한 번의 호출로 배열 전체를 랜덤 값으로 채울 수 있습니다.
using System;
using System.Data;
namespace Random_exam
{
internal class Program
{
static void Main(string[] args)
{
Random rand = new Random(); // 랜덤 객체 생성
Byte[] b = new Byte[5];
rand.NextBytes(b); // 배열전체를 랜덤값으로 할당
for(int i = 0; i < 5; i++)
{
Console.WriteLine("Byte형 랜덤값[{0}] : {1}", i, b[i]);
}
}
}
}
결과
Byte형 랜덤값[0] : 5
Byte형 랜덤값[1] : 204
Byte형 랜덤값[2] : 227
Byte형 랜덤값[3] : 17
Byte형 랜덤값[4] : 109
[Review]
"초보자를 위한 C# 200제(2판)" / 저자 강병익
'Program Language > C#' 카테고리의 다른 글
Part2. C# 기초 다지기(7. 선형탐색과 이진탐색) (18) | 2023.02.17 |
---|---|
Part2. C# 기초 다지기(6. 배열의 최대 / 최소 값 구하기) (22) | 2023.02.15 |
Part2. C# 기초 다지기(4. 배열의 정렬) (14) | 2023.02.12 |
Part2. C# 기초 다지기(3. 다차원 배열) (28) | 2023.02.08 |
Part2. C# 기초 다지기(2. Array 클래스) (20) | 2023.02.06 |
댓글