В отличие от оператора if / if ... else, у оператора switch может быть сразу много ветвей. Он работает с типами byte, short, char, и int. Также поддерживает перечислимые типы (Enum Types), класс String и некоторые классы, являющиеся обертками над типами данных: Character, Byte, Short и Integer.
public class SwitchExample {
public static void main(String[] args) {
int a = 10;
switch (a) {
case 1:
System.out.println("One");
break;
case 2:
System.out.println("Two");
break;
case 3:
System.out.println("Three");
break;
default:
System.out.println("Out of range");
break;
}
}
}
Вопрос 1.
Чем принципиально отличается оператор switch от if? Когда целесообразно использовать switch, а когда if?
Вопрос 2.
Почему switch будет работать быстрее, чем набор if ... else if?
Вопрос 3.
Какие ограничения делают невозможным использование switch в определенных условиях и вынуждают использовать if ... else if?
Вопрос 4.
Почему нужно ставить break в конце каждого блока case?