자바의 단골문제인 로또번호 생성하기입니다.

간단한 규칙 설명을 하자면, 랜덤으로 여섯개의 숫자(1~45)를 출력하는 과정이고, 중복값은 없어야합니다.

규칙과는 예외로, 보기 편하게 오름차순으로 정리까지 해보겠습니다.

 

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>로또번호 생성하기</title>
    <script>
    	var lotto = new Array();
        while (lotto.length < 6) {
            let lottoNum = Math.floor(Math.random() * 45) + 1;
            if (!dupl(lotto, lottoNum)) {
                lotto[lotto.length] = lottoNum;
            }
        }

        lotto.sort(function(a, b){
            return a - b;
        });
        document.write("<hr>");
        function dupl(arr, num) {
            let result = false;
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] == num) {
                    result = true;
                    break;
                }
            }
            return result;
        }
        document.write("lotto : " + lotto, "<br>");
    </script>
</head>
<body>
    
</body>
</html>

1. 처음은 lotto 라는 배열을 생성합니다.

 

2. 배열은 인덱스 0번부터 5번까지 총 여섯개이기때문에 인덱스는 5까지 있고, 길이는 1부터이기때문에 6입니다.

 

3. Math.randon()은 0과 1사이의 소수이기때문에 45를 곱하고 소수점을 버리면(Math.floor()) 0과 44가 나오는데 여기서 1을 더하면 1~45 사이의 숫자가 랜덤으로 생성됩니다.

 

4. 중간에 function dupl(arr, num)은 매개변수가 arr과 num인 중복값 찾는 함수입니다. 이는 중복숫자가 나올 시 통과가 되는 함수입니다. 그렇기 때문에 로또번호 생성하는 반복문에서는 앞에 !를 붙여 중복이 아닐때의 임의숫자를 배열에 담도록 설정했습니다.

 

5. 익명함수를 통해서 sort기능을 사용했습니다. 자세한 설명은 아래 줄에 링크를 통해 확인할 수 있습니다.

https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort2

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기