inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

입문자를 위한 자바스크립트 기초 강의

로또 번호 추첨기 과제 만들기 중

254

ㅇㅇ

작성한 질문수 2

0

// 요소 선택 및 상수 선언 
let lottoEl = document.querySelector('.lotto');
let numbersDiv = lottoEl.querySelector('.numbers');
let drawButton = lottoEl.querySelector('#draw');// 추첨
let resetButton = lottoEl.querySelector('#reset');// 다시

let lottoNumbers = []; // 6개의 추첨 번호가 들어갈 배열
let colors = ['#d44052','#F5A623','#F5E123','#7ED321','#4A90E2','#4A53E2'];

let paintNumber = (num) => {
    let eachNumDiv = document.createElement('div');
    let colorIndex = Math.floor(num/10);
    eachNumDiv.classList.add('eachnum');
    eachNumDiv.style.backgroundColor = colors[colorIndex];
    numbersDiv.appendChild(eachNumDiv);
}

function drawNum(){
    // ran 변수가 여기 위치에 위치하면 자꾸 무한루프에 빠짐 ;ㅁ; 
//무한루프 발생 주의 
    let ran = Math.floor(Math.random()*44)+1;
    
    while(lottoNumbers.length < 6) { 
        //let ran = Math.floor(Math.random()*44)+1;
        if(lottoNumbers.indexOf(ran) === -1){
            lottoNumbers.push(ran);
            paintNumber(ran);
        }
    }
}
function clearNum(){
    lottoNumbers.splice(0,6);
    numbersDiv.innerHTML = '';
}

drawButton.addEventListener('click', drawNum);
resetButton.addEventListener('click', clearNum);

예제코드 무한루프 코드 입니다. 실행 시 무한 루프 발생합니다.

 

과제 하던 중 무한루프를 만났습니다.

이 경우 변수가 밖에 있으면서 while의 조건문이 충족되지 못해서 무한 루프가 만들어지는 경우가 맞을까요?

 

 

javascript

답변 1

0

인프런 AI 인턴

안녕하세요, 푸푸님. 무한 루프가 발생하는 원인은 ran 변수의 선언 위치입니다. 현재 코드에서 ran 변수가 while 문 안에 위치하지 않고 밖에 위치하고 있기 때문에 무한 루프가 발생합니다. ran 변수를 while 문 안에 위치시키면 원하는 동작을 수행할 수 있습니다. 즉, drawNum 함수에서 ran 변수를 let ran = Math.floor(Math.random()*44)+1; 코드를 while 문 안에 옮기시면 됩니다. 그렇게 수정하면 무한 루프 문제가 해결될 것입니다. 감사합니다.

(ToDoList 실습) ! 연산자에 대해

0

103

1

사진이 나타나지 않아요

0

145

1

디지털 시계 만들기 질문 드립니다.

0

437

1

생성자 함수 관련 질문 드립니다

0

277

1

템플릿 리터럴 작동이 되지 않습니다.

0

229

1

배열 메소드 2편 질문 드립니다.

0

256

1

고양이 api

0

505

1

노드와 메소드..

1

321

2

수료 후 수업계획 문의드립니다.

1

528

1

질문합니다!

1

375

1

고양이 api 안되서 알려주신 강아지 api 검색했는데요

1

601

1

미니 프로젝트 포토 앨범

0

339

1

삼항 연산에서 질문

0

299

1

함수 3편 강의 듣고 질문 드립니다!!

0

364

1

Date 강의 질문드립니다.

1

308

1

질문있습니다.

1

307

1

<input type="button"> 과 <button>차이

1

530

1

재질문)html작성할때

1

255

1

콘솔창에서 결과를 보고싶을때

1

234

1

html 작성할때

1

207

1

자바 스크립트 반복문

1

258

1

상수 선언이랑 prompt 질문이요

1

245

1

이미지 api

0

492

2

로또 번호 추첨하기 中

0

276

1