Для того, чтобы после выполнения нужной ветви оператора switch другие операторы не выполнялись, каждая ветвь должна заканчиваться оператором break:
int i;
String input;
input=JOptionPane.showInputDialog("Введите цифру:");
// преобразование из строкового значения в целое
i=Integer.parseInt(input);
Switch (i)
{
case 0: System.out.printf(“\nЭто цифра ноль”);
break;
case 1: case 2: System.out.printf(“\nЭто цифра один или два”);
break;
default: System.out.printf(“\nЭто неизвестная цифра”);
}
В этом случае после ввода цифры 0 на экран будет выведено только одно сообщение:
Это цифра ноль
Если в каждой ветви switch стоит не по одному, а по нескольку операторов, то необходимо брать их в фигурные скобки:
Switch (селектор)
{
case метка-1:
{
оператор;
оператор;
оператор;
break;
}
case метка-2:
{
оператор;
оператор;
break;
}
. . . . . . . . . . . . . . . . .
default:
{
оператор;
оператор;
}
}
Для улучшения читаемости программы необходимо использовать сдвиг операторов.
Можно использовать вложенные операторы switch, при этом в разных операторах могут быть одинаковые метки вариантов:
Switch (n)
{
case 0: оператор;
break;
Case 1: switch (m)
{
case 0: оператор;
break;
case 1: оператор;
break;
default: оператор;
}
case 3: оператор;
break;
. . . . . . . . . . . . . . . . .
default: оператор;
}
Пример:по заданному номеру месяца года определить количество дней в нем. В этом переключателе всего три ветви:
int month;
String input;
input=JOptionPane.showInputDialog("Введите номер месяца:");
// преобразование из строкового значения в целое
month=Integer.parseInt(input);