в JavaScript, а также я видел это в PHP: вы можете использовать логическое выражение внутри ваших случаев: Например:
switch(true){ case (d<10): document.write("Less than 10"); break; case (d==10): document.write("Equal to 10"); break; case (d>10): document.write("Greater than 10"); break; default: document.write("Some dumb error. Probably not a number."); }
Мне было интересно, можем ли мы сделать это на Java … скажем, мне нужно сравнить очень большой диапазон.
case 1 : case 2 : ... case 5000: case 5001: default:
Было бы утомительно. Я мог бы обернуть мои случаи внутри операторов if, но мне было интересно, как это можно сделать, как в JavaScript или PHP.
Нет. Вы не можете сделать это, используя переключатель в java. Вы должны использовать if-else
для выполнения этого.
См. Эту ссылку для получения более подробной информации.
Приятно иметь, но вы не можете. Цитирование JLS:
Тело оператора switch известно как блок переключателя.
Любой оператор, содержащийся в блоке коммутатора, может быть помечен одной или несколькими метками коммутатора, которые являются метками case или default.
Считается, что эти метки связаны с оператором switch, а также значениями константных выражений (§15.28) или констант перечисления (§8.9.1) в метках case.
Эти метки должны быть constant expressions or enum constants
.