테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 질문이요!! 채택완료

주니준이 4년 전 조회 1,913

        <script>

            var a = 10;

            var b = 6;

 

            if(a==10 && b==6){

                document.write(a+"/"+b+"<br>");

            }

             else if(a==10){

                document.write(a+"<br>");

            }

 

        </script>

a=10, b=6일때 

  if(a==10 && b==6)document.write(a+"/"+b+"<br>");

이것만 실행하고 a==10일때는 실행하면 안돼요;;

 

a=10만 있을 때는

  else if(a==10)document.write(a+"<br>");

이것만 실행하게 할려면 어떻게 짜야할까요?

            

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
4년 전

if 이후에 else if를 작성하시면 먼저 만족되는 문장이 실행된 후에 종료되기 때문에 둘 중 한 문장만 실행됩니다.

if(a==10)을 먼저 작성했다면 만족하고 종료되기 때문에 else if(a==10 && b==6)은 실행되지 않습니다.

반대로, if(a==10 && b==6)을 먼저 작성할 경우 b가 6이 아니라면 else if(a==10)로 넘어가서 해당 부분이 실행됩니다.

 

'a=10만 있을 때'라는 게 b의 값이 없는 상태인지 6이 아닌 상태인지를 의미하는지는 모르겠지만 a는 10으로 고정이고, b만 6인지 아닌지 체크하고 싶으신 거라면

</p>

<p>if (a == 10) {</p>

<p>    if (b == 6) {</p>

<p>        document.write(a + "/" + b + "
");</p>

<p>    } else {</p>

<p>        document.write(a + "
");</p>

<p>    }</p>

<p>}</p>

<p>

필요에 따라 이런 방법으로도 사용할 수 있을 것 같습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로시츠키

두문장 다 실행하고싶으시면  else if 를 쓰면 안되요.

 

if 문을 두개로 쪼개셔야합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

if(a==10 && b==6){

    document.write(a+"/"+b+"<br>");

}

if(a==10){

    document.write(a+"<br>");

}

 

두개로 나누셔야되겠네요

 

1번 조건이 만족한다면 else문은 실행되지 않습니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

적으신 구문은 a==10, b==10 둘다 만족하니 아래 a==10이 실행이안되는겁니다.

a==10 먼저 체크하시면 될듯합니다.

</p>

<p>            if (a==10) {</p>

<p>                document.write(a+"/"+b+"
");</p>

<p>            } else if (a==10 && b==6) {</p>

<p>                document.write(a+"
");</p>

<p>            }</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인