+ 3
Switch vs if else in Java
I can't notice any difference performance between using if else and switch, which is better?
3 Answers
+ 9
switch and if/else are different in that if/else can check any condition, while switch can only check for one variable against single values. In terms of performance, they are similar.
Use switch for when you need to check something specific a variable contains. This is useful when a variable has a long name, because you only have to type it once. Ex:
switch (grade)
{
case "A": case "a":
//your code
break;
//more cases & default
}
if/else lets you check any sort of condition you want - if a variable is in a range, checking multiple variables, checking what a method returns, or anything that evaluates as true/false.
Ex:
if (gpa <= 4.0 && gpa >= 3.5)
{
//your code
}
//more else/ifs and else
+ 1
Switch checks values while if-else checks conditions.
So if you want to simply fork flow by value, switch is better.
I show you just an example where switch looks fine.
(For simplicity, this code doesn't take leap years into account)
public int dayOfMonth(int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return 28;
default:
return 0; // or throw exception
}