Я писал программу для проверки символа на гласный или согласный. Ниже приведен пример кода:

открытый класс CheckVowel
{
public static void main(String arg[])
{
java.util.Scanner sc= new java.util.Scanner(System.in);
char c=sc.next().charAt(0);
c=Character.toLowerCase(c);
switch(c)
{
case ' a':
System.out.print("Это гласная");
break;
case 'e':
System.out.print("Это гласная" );
break;
case 'i':
System.out.print("Это гласная");
break;
case 'o':< br /> System.out.print("Это гласная");
break;
case 'u':
System.out.print("Это гласная");
break;
по умолчанию:
System.out.print("Это согласная");
}
System.out.print("\n"+System.currentTimeMillis ());
}
}

Каждый думает, что в случае переключения, какой случай совпадет первым, он будет выполнен. Это верно в отношении потока выполнения, скажем, подхода сверху вниз, но на самом деле в переключателе создается таблица поиска на основе количества случаев.

Если переключатель содержит более пяти элементов, он реализуется с помощью таблицы поиска или хэш-списка. Это означает, что все элементы получают одинаковое время доступа по сравнению со списком if (s), где для достижения последнего элемента требуется гораздо больше времени, поскольку он должен сначала оценить каждое предыдущее условие. Вот почему случай переключения быстрее, чем операторы if. .

Вкратце: все случаи рассматриваются параллельно, что означает одинаковое время доступа и ожидание оператора break. Серьезно, перестаньте менять наши представления о переключении.