2

in JavaScript and also I've seen it in PHP : You can use a logical expression inside you cases : For Example :

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.");
}

I was wondering if we can do this in Java ... say I needed a to compare a very large range.

case 1 :
case 2 :
...
case 5000:
case 5001:
default:

It would be tedious to do. I could wrap my cases inside if statements but i was wondering it could be done like in JavaScript or PHP.

hayonj
  • 1,429
  • 3
  • 21
  • 28

2 Answers2

3

It is nice to have, but you cannot. Quoting JLS:

The body of a switch statement is known as a switch block.

Any statement immediately contained by the switch block may be labeled with one or more switch labels, which are case or default labels.

These labels are said to be associated with the switch statement, as are the values of the constant expressions (§15.28) or enum constants (§8.9.1) in the case labels.

These labels have to be constant expressions or enum constants.

Community
  • 1
  • 1
zw324
  • 26,764
  • 16
  • 85
  • 118
2

No You cannot do that using switch in java. You have to use if-else to accomplish this.

See this link for more details.

Community
  • 1
  • 1
NullPointerException
  • 3,732
  • 5
  • 28
  • 62