Zargontapel
Zargontapel

Reputation: 298

Avoid Switch statement redundancy when multiple Cases do the same thing?

I have multiple cases in a switch that do the same thing, like so: (this is written in Java)

 case 1:
     aMethod();
     break;
 case 2:
     aMethod();
     break;
 case 3:
     aMethod();
     break;
 case 4:
     anotherMethod();
     break;

Is there any way I can combine cases 1, 2 and 3 into one case, since they all call the same method?

Upvotes: 12

Views: 17826

Answers (4)

Reimeus
Reimeus

Reputation: 159754

Sure, you can allow case clause sections for 1 & 2 to 'fall through' to clause 3 and then break out of the switch statement after that:

case 1:
case 2:
case 3:
     aMethod();
     break;
case 4:
     anotherMethod();
     break;

Upvotes: 7

Gene
Gene

Reputation: 46960

It's called the "fall through" pattern:

case 1:  // fall through
case 2:  // fall through
case 3: 
   aMethod(); 
   break; 
case 4: 
   anotherMethod(); 
   break; 

Upvotes: 4

Aravind Yarram
Aravind Yarram

Reputation: 80166

Below is the best you can do

case 1:
case 2:
case 3:
     aMethod();
     break;
 case 4:
     anotherMethod();
     break;

Upvotes: 4

Ted Hopp
Ted Hopp

Reputation: 234795

case 1:
case 2:
case 3:
    aMethod();
    break;
case 4:
    anotherMethod();
    break;

This works because when it happens to be case 1 (for instance), it falls through to case 2 (no break statement), which then falls through to case 3.

Upvotes: 24

Related Questions