Silverlight/Experiment

[실험실 메모] Random.Next(int minValue, int maxValue) 메서드에 대한 오해

길버트 2007. 10. 23. 11:19
Random.Next(int minValue, int maxValue) 함수를 사용하면서,

직관적으로 당연히 minValue 와 maxValue를 포함하면서 그 사이의 정수가 나오는 줄 알고 써왔습니다.


그렇게 알고 살다가, 살다가... 오늘 어떤 프로그램에서 아래와 같은 코드를 구현한 후,

int nIndex = myRandom.Next(0, 4);

결과를 테스트 하는데, 죽어도 4가 안나오는 것입니다.

혹시나 해서 F1을 눌러 MDSN Library를 보니, 아래와 같이 기술되어 있었습니다.

매개 변수

minValue
형식: System..::.Int32

반환되는 난수의 하한(포함)입니다.

maxValue
형식: System..::.Int32

반환되는 난수의 상한(제외)입니다. maxValueminValue보다 크거나 같아야 합니다.


4를 보고 싶으면, 아래와 같이 해야하는 것입니다.

int nIndex = myRandom.Next(0, 5);

옛말이 틀리지 않았습니다.

"아는 메서드도 두들겨 보고 써라."