2016-06-13 2 views
2

변수는이를 위해 삼항 연산자를 사용하는 것이 좋습니다 :삼항 연산자의 사용은 증가

answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;

이이 상당히 자주 발생합니다 나는 항상 나 자신을 물었다 질문이다. 또는 정상적인 if 문을 사용하는 것이 더 좋습니다. 나에게 이것은 한 줄로 훨씬 더 깨끗해 보인다.

+2

'answersCounter + = answer.length! = 0;'모두 당신이 필요로하는 것은 – Pointy

+0

입니다. 하지만 어떻게 작동합니까? 평가의 결과는 부울이며 변수는 숫자입니다. 이것은 자바에서 제대로 작동하지 않을 수 있습니까? – FraK

+2

아닙니다. 당신은 단지 공상을 얻으려고하기보다는 직접적으로, 명백한'if' 문을 사용해야합니다. –

답변

3

이것은 단지 의견 일 뿐이지 만, 당신이 생각하는 것처럼 인상을 쓰는 것은 다소 가난한 스타일이라고 생각합니다.

사전 증가 버전의 변수에 변수를 할당하는 것은 다소 혼란 스럽습니다. 나에게 최고의 코드는 가장 명확하다 (필요한 경우 최적화를위한 끄덕임 제외). 간결성은 명확성을 가져오고 때로는 그렇지 않다. (Perl로 작성된 것을 볼 수있다. 유사한

int i = 5; 
i += i++ + i; 

또는 뭔가 :

당신이 이제까지의 프로그래밍 트릭 질문이 있었나요? 그리고 당신은 그 자체가 사전/사후 증분 버전에 변수를 할당했을 때부터 어떻게 작동하는지 알 필요가있는 자신에게 생각하십니까? 내 말은, 당신은 절대 진짜 코드로 보지 못했을 겁니다, 그렇죠?

글쎄, 방금 예제를 제공했습니다. 그리고 그것이 파싱 가능한 동안, 그것은 관용적이지 않고 똑 바른 if보다 분명하지 않습니다.

예. 물론

if (answer.length != 0) answersCounter++; 

은, 어떤 사람들은 아웃 중괄호 if 문을 좋아하지 않아, 당신은 삼항와 종료 방법 아마 인, 줄 바꿈없이 괄호를 좋아하지 않는다. 코딩 스타일을 가진 어떤 것을 다시 계산할 필요가 있습니다. 그러나 약간의 캐리지 리턴을 피하기 위해 (주관적으로) 나쁜 코드가 나오게됩니다.

다시 말하지만, 이는 의견 일뿐입니다.

+0

정말 까다로운 질문입니다. 감사합니다 !!! 그리고 if 문으로 더 구체적으로 생각하는 것은 여기에 갈 수있는 방법입니다 :) – FraK