Возможный дубликат:
Какова относительная разница в производительности if/else или оператора switch в Java?
Учитывая следующие два метода:
public static int useSwitch(int i) {
switch (i) {
case 0:
return 1;
default:
return 0;
}
}
public static int useIf(int i) {
if (i == 0)
return 1;
return 0;
}
тестирование показывает, что switch
выполняется немного быстрее (1,4 нс на один вызов на моей машине), чем версия if
.
Я всегда считал, что преимущество переключателя не срабатывало, пока не удалось избежать хотя бы нескольких ifs
,
Почему switch
быстрее, чем один if
?