그동안 개발시에 취향상 if문을 자주 썼는데 갑자기 case문과 비교 하고 싶어서 테스트 하였습니다.
C언어에서는 차이가 있다고 하는데 java에서는 별로 차이가 없는 듯 합니다. 테스트 방식이 문제가 있다면 말씀하여 주시기 바랍니다.
package test;
public class IfVsSwitchTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 1;
long startTime = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
switch(a){
case 2:System.out.println("a is 2");break;
case 3:System.out.println("a is 3");break;
case 4:System.out.println("a is 4");break;
case 5:System.out.println("a is 5");break;
case 6:System.out.println("a is 6");break;
case 7:System.out.println("a is 7");break;
case 1:System.out.println("a is 1");break;
default: System.out.println("a is error");
}
}
long endTime = System.currentTimeMillis();
String first_time = "## case 소요시간(초.0f) : " + ( endTime - startTime )/1000.0f +"초";
startTime = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
if(a==2){
System.out.println("a is 2");
}else if(a==3){
System.out.println("a is 3");
}else if(a==4){
System.out.println("a is 4");
}else if(a==5){
System.out.println("a is 5");
}else if(a==6){
System.out.println("a is 6");
}else if(a==7){
System.out.println("a is 7");
}else if(a==1){
System.out.println("a is 1");
}else{
System.out.println("a is error");
}
}
endTime = System.currentTimeMillis();
System.out.println(first_time);
System.out.println("## if 소요시간(초.0f) : " + ( endTime - startTime )/1000.0f +"초");
/*
1.
## case 소요시간(초.0f) : 6.357초
## if 소요시간(초.0f) : 6.631초
2.
## case 소요시간(초.0f) : 6.428초
## if 소요시간(초.0f) : 6.548초
3.
## case 소요시간(초.0f) : 6.425초
## if 소요시간(초.0f) : 6.354초
*/
}
}
BigDecimal 사칙연산 (JAVA 계산) (0) | 2014.03.18 |
---|---|
contentType을 이미지(jpg)로 출력하기 (0) | 2014.03.18 |
이메일 형식 검증 (validation) (0) | 2014.03.13 |
JAVA에서 JSONParser 사용하기 (6) | 2014.03.07 |
Map의 key(키)로 정렬(Sort) 및 역정렬(Reverse) (0) | 2014.03.07 |
댓글 영역