[일단 만드는 JS] 로또 번호 추첨기

blueprint·2022년 4월 15일
0

🎱 로또 번호 추첨기

1-45 숫자 사이에서 무작위로 로또 번호를 추첨하는 로또 번호 추첨기를 만들어 보려고 한다. JavaScript의 내장 함수를 활용해 간단히 만들 수 있다.

우선 뽑힌 번호들을 보관할 수 있는 공간이 필요하다. var 키워드를 통해 변수를 만들어 주면 된다. 로또 번호는 하나가 아닌 여러 개의 숫자를 뽑기 때문에 5개의 숫자를 담을 수 있는 배열 형태로 선언해 준다.

var lotto = []

.length를 사용해 배열의 길이를 계산할 수 있는데, 로또 번호가 5개 위로 뽑히면 안 되므로 배열의 길이가 6 미만일 때까지만 반복문이 작동할 수 있도록 while 문에 lotto.length < 6이라는 조건을 작성해 준다.

var lotto = [];
while (lotto.length < 6) {}

이제 추첨되는 번호가 무작위로 뽑힐 수 있도록 해야 한다.

Math.random() 함수가 랜덤으로 번호를 추출하는 함수이기 때문에 1-45까지의 번호가 추첨될 수 있도록 함수를 여러 번 동작시켜야 한다.

함수를 사용하는 방법은 아래와 같다.

Math.random(): 0 이상 1 미만의 실수(float)
Math.random() * 최댓값
ex) Math.random() * 10: 0 이상 10 미만의 실수

우리는 45까지의 숫자를 사용할 것이기 때문에 Math.random() * 45로 계산해 주어야 한다고 생각할 수 있다. 그러나 45까지의 숫자를 사용하려면 Math.random() * 45 + 1, 즉 46 미만으로 범위를 설정해 주어야 한다.

추첨된 숫자는 실수형이 아닌 정수형으로 나올 수 있도록 parseInt로 변환시켜 준다. parseInt는 소수점을 버리고 정수로 변환시켜 주는 JS 내장 함수이다.

이렇게 변환된 정수의 로또 번호가 반복문이 한 번 돌아갈 때마다 num에 저장될 수 있도록 한다.

var lotto = [];
while (lotto.length < 6) {
	var num = parseInt(Math.random() * 45 + 1);
}

이대로 출력하면 숫자 순서가 뒤죽박죽이기 때문에 오름차순으로 정렬해 준다.
.sort를 사용할 경우 사전순으로 정렬되기 때문에 [1, 11, 2, 22, 3, 33] 처럼 앞자리를 기준으로 정렬된다.

오름차순으로 정렬하기 위해서는 sort((a, b) => a - b) 형태로 사용해야 한다.
내림차순은 b-a로 작성하면 된다.

var lotto = [];
while (lotto.length < 6) {
	var num = parseInt(Math.random() * 45 + 1);
	if (lotto.indexOf(num) == -1) {
		lotto.push(num);
	}
}
lotto.sort((a,b)=>a-b)
document.write(lotto);

0개의 댓글