좋은 코드 및 코드 최적화 개발을위한이 질문.부울 조건 테스트 - 어느 것이 좋습니다?
boolean a = false;
는 조건
if(a == false)
또는
if(!a)
시스템 레벨에서 두 조건이 일어날 것을 몇 가지 설명을 제공하십시오 가장 좋습니다.
좋은 코드 및 코드 최적화 개발을위한이 질문.부울 조건 테스트 - 어느 것이 좋습니다?
boolean a = false;
는 조건
if(a == false)
또는
if(!a)
시스템 레벨에서 두 조건이 일어날 것을 몇 가지 설명을 제공하십시오 가장 좋습니다.
if (!a)
다른 하나는 끔찍한 "부울 세탁"스타일입니다.
내부적으로 의미는 동일합니다 (심지어 C에서 두 조건 모두 a
이 정확히 0
일 때도 마찬가지 임). 따라서 최적화와 관련하여 차이는 없습니다.
"boolean laundering"이라는 용어를 설명 할 수 있습니까? 나는 그것을 좋아한다 (돈세탁을 연상시킨다). 그러나 나는 그것을 이해할 수 없다. –
문구는'if (condition) {var = true; } else {var = false; }'최근에. 아무 래도 많은 사람들이 부울과 조건을 같은 것으로 보지 않으며 변환을 위해 'if'또는 관계 연산자가 필요합니다. 예, 돈세탁과 유사한 점이 있습니다. – starblue
이 결과는 아마도 컴파일러가 결정한 것과 정확히 동일한 결과로 끝납니다.
정확히 동일합니다. 컴파일러는 가장 좋은 방법으로 코드를 컴파일합니다.
나는 약간의 차이점을 @ 시스템 레벨이라고 생각한다. –
@AnkurPatel. '일반적인 용어'에서 기능이나 성능에는 차이가 없습니다. 어떤 특정한 컴파일러 나 인터프리터가 다른 컴파일러 나 인터프리터를 우선적으로 선호하지만 asm 코드/벤치 마크를 검사해야만 ... – Roddy
부울 변수로 수행 된 작업 내역에 달려 있다고 생각합니다. 당신이 이전에 수학적 표현식을 사용하여, 유형과 달리 사용하여 값 할당과 같은 특별한 방법으로 부울 변수에 값을 할당 한 경우
후 나는 제 2의 선택을 생각 : 는 안전과 기능에 가능성이있는 경우 (A!) 당신이 기대 하듯이, 부울 변수 나 부울 값으로 평가되는 표현식만을 사용하여 항상 값을 할당했다면 그다지 중요하지 않습니다. 그러나, 개인적으로 첫 번째 선택 : if (a == false) 읽기 쉽습니다.
성능과 관련하여 다른 답변도 모두 동의합니다.
어떤 프로그래밍 언어입니까? 어떤 컴파일러를 사용하고 있습니까? 대상 플랫폼이 무엇입니까? – Thilo
@Thilo : 나는 일반적인 용어로 어떤 플랫폼이나 프로그래밍 언어도 묻지 않았다. 이 단지의 예. –
'if ((a == false) == true)'의 무엇이 문제입니까 ?? ; -> – Roddy