채택완료

자바스크립트 질문이요!!

        <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 포인트

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인지 아닌지 체크하고 싶으신 거라면

Copy
if (a == 10) {

    if (b == 6) {

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

    } else {

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

    }

}

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

두문장 다 실행하고싶으시면  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 먼저 체크하시면 될듯합니다.

Copy
if (a==10) {

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

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

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

            }

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

🐛 버그신고