Оператор логического выражения оператора case в Java – против JS или PHP

в 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 .