2016-07-21 4 views
-2

대부분의 코드베이스는 if 뒤에 하나의 명령문 만 실행해야하는 경우를 포함하여 모든 경우에 괄호로 묶은 if 문을 사용합니다.한 줄 if 문을 사용할 때의 단점은 무엇입니까?

항상 괄호로 묶은 if 문을 사용하거나 시간 경과에 따라 표준이 된 것이 확실한 이점이 있습니까?

무엇이 일반적인 합의입니까, 우리의 linter를 통해 한 줄의 if를 허용하는 것은 큰 실수입니까?

+0

"단선 if 문"이 아니라 조건부 연산자입니다. 그것들은 교환 할 수있는 것이 아닙니다. – zerkms

+0

if (조건) doSomething(); –

+0

당신은'if (condition) {doSomething(); }'그것은 또한 한 줄입니다. – zerkms

답변

1

대부분의 컨트롤 블록에서 중괄호를 사용하는 데는 여러 가지 이유가 있지만 개발자의 선호도에 따라 크게 달라집니다.

먼저 제어 블록을 읽기 쉽게 만듭니다. 고려 :

if (some_condition) 
runSomeFunction(); 
     runSomeOtherFunction(); 

을 들여 가장 중괄호 언어로 존중되지 않기 때문에,이 작동하지만 정말 가독성을 감소 (만 runSomeFunction()는 제어 블록에 일어날 것입니다). 당신이 (거의 변함없는 것보다 더 자주 발생) 제어 블록에 무언가를 추가해야 할 때 곱슬의 실망하거나 쉽게 위의 같은 문제로 이어지는 잊어 될 수 추가,

if (some_condition) { 
    runSomeFunction(); 
} 
runSomeOtherFunction(); 

둘째로 비교.

여전히 이러한 것들이 우선적으로 적용되며 항상 예외를 발견 할 수 있습니다 (예 : 위의 첫 번째 예보다 훨씬 더 읽기 쉬운 if (some_condition) runSomeFunction();). 가독성을 유지하면서 훨씬 간결한 형식으로 동일한 목표를 달성합니다.

+0

"훨씬 더 읽기 쉬워요"--- o_O – zerkms

+0

가 명확하게 편집되었습니다. 첫 번째 예제보다 읽기 쉽다는 의미였습니다. – cardonator

0

코드를 다시 추가해야 할 경우 대괄호를 열지 않은 것을 잊을 수 있으며 한 줄을 초과하면 코드가 작동하지 않습니다.

그 외 우선 순위와 형식의 문제입니다. 당신은 많은 다른 대답을 얻을 수 있습니다.