반응형
if 안에 boolean expression이 있으면 모두 다 실행을 안한다.
예를들어
if( true() || false() )
;
이렇게있으면 true()가 true를 return 하기때문에
false()가 false든 true든 무조건 if문을 실행시키게된다.
따라서 false()라는 함수는 실행시키지 않는다.
ex)
결과:
1
거의 모든 컴파일러가 이런식의 최적화(Optimization)을 제공한다.
주의할점은 | 가아닌 || 를,
&가 아닌 &&를 사용해야한다.
이렇게있으면 true()가 true를 return 하기때문에
false()가 false든 true든 무조건 if문을 실행시키게된다.
따라서 false()라는 함수는 실행시키지 않는다.
ex)
static boolean a(boolean result, String function)
{
System.out.println(function);
return result;
}
public static void main(String[] args)
{
if( a(true, "1") && a(true,"2") )
;
}
결과:
1
2
결과:
1
2
public static void main(String[] args)
{
if( a(true, "1") || a(true,"2") )
;
}
결과:
1
결과:
1
public static void main(String[] args)
{
if( a(false, "1") && (a(true,"2") |||a(true,"3")))
;
} 결과:
1
public static void main(String[] args)
{
if( a(true, "1") && (a(true,"2")||a(true,"3")))
;
}
결과:
1
2
사용가능예는
String str;
if( str!=null && printf(str))
;
이런식으로하면 str이 null이 아닐때만 print하게 된다.
결과:
1
2
사용가능예는
String str;
if( str!=null && printf(str))
;
이런식으로하면 str이 null이 아닐때만 print하게 된다.
거의 모든 컴파일러가 이런식의 최적화(Optimization)을 제공한다.
주의할점은 | 가아닌 || 를,
&가 아닌 &&를 사용해야한다.
반응형
'Program Language' 카테고리의 다른 글
[코드이야기] 자바 JDK의 버그 (0) | 2013.02.07 |
---|---|
OpenMP 디버깅 Tips (0) | 2012.07.31 |
OpenCL Typedef enum (0) | 2012.04.26 |
yacc, bison highlight plugin for eclipse (0) | 2011.12.19 |
암호 인코딩(encoding), 디코딩(decoding) 툴(SnD_RT) (0) | 2011.05.02 |
댓글