자바스크립트 질문이요

자바스크립트 질문이요

QA

자바스크립트 질문이요

본문

        <script>

            for (var d = 1; d <= 6; d++) {

                console.log(d+"<br>");

                if (d == 5) {

                    

                  

                    

                    d = 2; 

                }

            }

        </script>

 

이거 코드는 잘못된 코드입니다.

의도는 d가 6까지 반복되다가 d가 5가되면   for (var d = 1; d <= 6; d++) {이부분에

초기값을 2로 시작하게끔 할려면 어떻게 해야하나요?

이 질문에 댓글 쓰기 :

답변 5

코드는 맞습니다. 그런데 d가 5일때 2로 들어가기 때문에

 

12345 -> 2345 -> 2345...... 무한 루프 걸립니다.

출력값이 어떤 형태로 나와야 하는가요?
그냥 d 만을 2로 바꾸어주면 무한 루프 걸리는거 맞습니다.
다음번 이함수 호출될때 d 초기값이 2로 되는것이 필요하다면 함수밖에 전역변수 하나 설정하고 그값을 d 가 받게하면 될것입니다. 그리고는 d가 5이 될때 그 전역변수가 2이되게 해주면 될것입니다.

어떤 결과를 바라시는지요...

 

 

<script>

function callLoop(){     

     for (var d = 1; d <= 6; d++) {

          console.log(d+"<br>");

          if (d == 5) {   

                d = 2; 

          }

      }

}

</script>

이렇게 함수안에 넣어주시고 함수를 호출해주는게 맞는듯한데...

 

 

 

코드 소스를 보여주실수 없을가요?

안될리가 없겠는데...

저한테선 잘되고 있습니다.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>

        <script>
            function callLoop() {

                for (var d = 1; d <= 6; d++) {

                    console.log(d + "<br>");

                    if (d == 5) {

                        d = 2;

                    }

                }

            }
            callLoop();
        </script>
    </body>
</html>

그렇게 무한루프 함수를 직접 호출해주시면 페이지가 호출되지 않을것입니다.
호출시작에 무한루프에 빠져들테니까요.
페이지에 바턴하나 추가하시고 바턴 클릭할때 함수 호출되게 하시면 바라시는대로 될것입니다.

그렇게 무한루프 함수를 직접 호출해주시면 페이지가 호출되지 않을것입니다.
호출시작에 무한루프에 빠져들테니까요.
페이지에 바턴하나 추가하시고 바턴 클릭할때 함수 호출되게 하시면 바라시는대로 될것입니다.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
<button onclick=" callLoop()">버튼</button>
        <script>
                function callLoop() {

                for (var d = 1; d <= 6; d++) {

                    console.log(d + "<br>");

                    if (d == 5) {

                        d = 2;

                    }

                }

            }
       


        </script>
    </body>
</html>

이것도 멈추어버려요

답변을 작성하시기 전에 로그인 해주세요.
전체 947
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT