2017-01-23 1 views
4

적 경우가 있습니다. 카운터 예제를 알고 있거나 분명히 동일하면 입력 내용을 크게 평가할 것입니다.그렇지 않은 경우의 동치

+2

아니요,이 두 문장은 동일합니다. – SarTheFirst

+0

@SarTheFirst [누군가 내 질문에 대답 할 때 무엇을해야합니까?] – CKing

+0

나중에 누군가가 따라 와서 들여 쓰기가 잘못 된 코드를 잘못 편집 할 때만하십시오. –

답변

2

질문에있는 두 문장은 완전히 동일합니다. 즉, 첫 번째 문장은 if-else 블록을 다시 입력하기 전에 몇 가지 일반적인 단계를 수행하려는 경우에 더 유용합니다. 다른 후

if (condition) { 
    statement 
} else { 
    perform some common steps. 
    if (condition2) { 
     statement 
    } else { 
     statement 
    } 
} 
0

아니요, 해당 항목은 항상 동일합니다.

이유는 정확히 일치합니다. 첫 번째 예에서 블록의 유일한 문은 if 문입니다. 그래서 블록을 제거한다고해서 의미론이 전혀 변경되지는 않습니다. 변수 선언 등이없는 문장 하나만 래핑하는 것과 마찬가지입니다.

if (condition) { 
    statement 
} else { 
    String foo = "bar"; 
    if (condition2) { 
     statement 
    } else { 
     statement 
    } 
} 

이제 블록이 버전의 단일 if에 추가로 일을하고있다, 그래서 가지가 갈라있다 :와

대비.

하지만 버전 번호가 이 아니기 때문에 이 아닌은 완전히 동일합니다.

1

두 조건부 구조가 동일합니다.

첫 번째 경우에는 두 번째 if 또는 else가 true로 설정되어 블록을 실행해야하는 경우에 대해 몇 가지 코드를 실행할 수있는 옵션이 더 있습니다.

if (condition1) { 
    ... 
} else { 
    ... 
    if (condition2) { 
     ... 
    } else { 
     ... 
    } 
    ... 
} 

하지만 먼저 읽는 것이 더 간단합니다.

스위치를 사용하여 성능을 향상시킬 수도 있습니다.

+0

프로세서가 작동하는 방식 때문에 첫 번째 프로세서가 두 번째 프로세서보다 효율적이지 않습니까? –

0

괄호 후 하나 개의 명령 (있는 경우 두 번째), 당신이 어떤 이유로 자바 파일을 구문 분석하지 않으면 나중에는 그들이하는 사례는 없어야하므로이 있다는 것을 때문에 불필요한 있습니다 : 예를 들어, 모든 컨텍스트에서 다름

0

조건은 true 또는 false입니다. 두 가지 조건이 네 가지 밖에 없다. 두 경우 모두 정확히 세 가지 명령문 중 하나가 실행되며 네 가지 옵션을 모두 사용해 볼 수 있으므로 두 경우 모두 동일합니다. 진술이 조건에 영향을 미칠지라도 이것은 영향을 미치지 않습니다. 따라서 나는 그것이 동등한 내기.

관련 문제