2016-09-06 3 views
4

a ? x : y 또는 question ? answer1 : answer2과 같은 문에 대해 if {} else {} 문에 대한 삼항 조건부 연산자를 사용할 수 있습니다.else에 대한 삼항 조건 연산자

이 형식을 else if 절과 함께 사용할 수 있습니까? 예 : 뭔가 같은 :

a ? b ? x : y : z

... 또는 이것은 단지 과잉이다?

답변

6

a ? x : y에있는 xy은 모두 완전한 표현식이므로 올바른 유형의 결과가 나오는 한 모든 하위 표현식을 넣을 수 있습니다.

let res = a ? (b ? x : y) : z 

또는

let res = a ? x : (b ? y : z) 

또는 마지막에 심지어

let res = a ? (b ? w : x) : (c ? y : z) 
+2

롤 :

그러나, 조건식의 중첩 신속하게 관리하기 어려운, 그래서 괄호를 사용하는 것은 매우 좋은 생각이됩니다 'let res ='. 나는 그 시점에서 'else if'의 가독성이 연산자의 간결함보다 우선하다고 생각한다. – chicobermuda

+0

@chicobermuda 나는 동의한다 - 그러므로 "또는"단순한 "또는"대신에 "동의한다. 마지막 표현처럼 복잡한 것을 써야 할 필요가 있다면,'if' /'else' 체인이나 어떤 경우에는'switch'를 사용하는 것이 더 나을 것입니다. – dasblinkenlight