JavaScript의 "elseif"구문


답변:


507

JavaScript의 elseif는 "else if"형식입니다. 예 :

if (condition) {

} else if (other_condition) {

} else {

}

28
사람들이 이런 질문을 할 때 나는 근본적인 오해를 보여주고 있다고 생각합니다. 로 ifelse진짜의 필요가 없다 elseif.
mpen

14
@ 마크, 동의합니다 ...하지만 elseif가있는 언어에 익숙하기 때문에 때로는 엉망이됩니다. 나는 그것이 동일하다는 것을 알고 있지만, 자바 스크립트의 이유가 그것을 떠나는 이유가 무엇인지 궁금합니다. 그러나 나는 그들이 잘못했기 때문에 elif를 사용하지 않았기 때문에 기쁘다. :)
Jay K

16
@JayK : Haha .. PHP는 elseif, perl은 elsif(나는 생각한다), Python은 elif.. 처음에는 저를 짜증나게했지만 ... 그렇지 않으면 콜론 구문으로 작동하지 않기 때문에 파이썬과 PHP에서는 약간의 목적을 제공합니다.
mpen

6
@Mark 브라케팅에 대한 오해를 더 보여줍니다. 대괄호는 if/ else블록에 필요하지 않지만 사람들은 그것을 사용하도록 권장되므로 이것이 새로운 사용자에게 왜 잘못 보이는지 이해할 수 있습니다.

46
@Mark "else if"가 틀린 이유는 없다고 주장합니다. 그렇지 않으면 진술이 "스위치"를 사용하는 것과 유사하지만 더 정교한 비교가 가능합니다. 물론 스위치는 매우 간단한 비교 만 가능합니다. 따라서 다른 if를 사용하는 데는 분명히 좋은 이유가 있습니다.
jolsen

49

공백을 추가하십시오.

if (...) {

} else if (...) {

} else {

}

33

기능적으로 동등한이 구문을 사용할 수 있습니다.

switch (true) {
  case condition1:
     //e.g. if (condition1 === true)
     break;
  case condition2:
     //e.g. elseif (condition2 === true)
     break;
  default:
     //e.g. else
}

이것은 값 condition과 비교하기 전에 각각 이 완전히 평가 switch되므로 첫 번째 값 true이 일치하고 지점이 실행 되기 때문에 작동합니다 . 다음 을 사용하는 것을 기억break 하면 후속 분기가 실행되지 않습니다 .

참고 엄격한 그 지점 있도록 비교, 사용되는 condition단지이다가 "truthy"가됩니다 하지 실행할 수. true이중 부정 을 통해 진실한 가치를 부여 할 수 있습니다 !!condition.


이것은 기능적으로 동등한 AFAIK가 아닙니다. 조건에 넣을 수있는 것은 훨씬 제한적이며 switch (true)이해가되지 않습니다.
zwol

2
처음에는 이상하게 보이지만 동등합니다. 조건은 원하는 것 (함수 호출 또는 무엇이든 포함) true이 될 수 있으며 , 평가되면 해당 조건이 정확히 같은 방식으로 충족됩니다 else if.
Tamlyn

5
오, 지금 네가 뭘하는지 알아 꽤 영리합니다. (나는 어떻게 작동하는지 설명하는 단락을 추가하여
다운 보트를

1
이 상태 "다른 경우"이상 1 조건 목록에 대한 매우 간단하고 깨끗하고 우아한 해결책이다
스티브 구 센스

4
조건이 부울을 반환하지 않는 경우 (예 : if([]) alert('a')경고를 생성하지만 switch(true){case []:alert('a')}그렇지 않은 경우) 완전히 동일 하지는 않습니다. @zwol 가이 편집 에서 설명했듯이 []진실 된 값이지만 같지 않기 때문 입니다 . true
Oriol

13

실제로 기술적으로 올바르게 들여 쓰기하면 다음과 같습니다.

if (condition) {
    ...
} else {
    if (condition) {
        ...
    } else {
        ...
    }
}

else if엄밀히 말하면 없습니다 .

(업데이트 : 물론, 위의 스타일은 좋은 스타일로 간주 되지 않습니다 .)


1
당신은 이것을 쓸 수 있고,해야합니다 if (condition1) { ... } else if (condition2) { ... } else { ... }.
zwol

4
본질적으로 else if당신이 실제로 선택적인 블록을 생략하고 있을 때 {...}. EMCAScriptMDN 을 기준으로 참조했습니다 .
skube

13
언어의 공식 문법 측면에서는 정확하지만 대답은 사람들에게 else { if ... }스타일이 잘못된 잘못된 인상을 줄 수 있습니다 .
zwol

1
zwol가 말한 것. 당신 (skube)이 의미하는 것이 있습니다. 그리고 당신이 말한 것이 있습니다.
Gerard ONeill

6
if ( 100 < 500 ) {
   //any action
}
else if ( 100 > 500 ){
   //any another action
}

사용하기 쉬운 공간


2

조건문은 다른 조건에 따라 다른 조치를 수행하는 데 사용됩니다.

를 사용하여 if지정된 조건에 해당하면 코드 블록을 지정할 수는 실행되는

를 사용하여 else같은 조건이 거짓 인 경우 코드 블록을 지정할 수는 실행되는

사용은 else if첫 번째 조건이 false 인 경우, 시험에 새로운 조건을 지정합니다


1
x = 10;
if(x > 100 ) console.log('over 100')
else if (x > 90 ) console.log('over 90')
else if (x > 50 ) console.log('over 50')
else if (x > 9 ) console.log('over 9')
else console.log('lower 9') 

0

else와 사이에 공백이 없습니다.if

그것은해야한다 else if대신elseif

if(condition)
{

} 
else if(condition)
{

}
else
{

}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.