Link to home
Start Free TrialLog in
Avatar of Olukayode Oluwole
Olukayode OluwoleFlag for Canada

asked on

How can i make my switch statement more efficient

How can i make the  switch statement below   more efficient

What i want is LoginDetails.staticfiscalyear  =  "xx"   DO  NOTHING

If LoginDetails.staticfiscalyear =  01  or 02 ................ 12   Then  runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records  

Currently I am having  to repeat same line   for 01  .....12   twelve time  as below

[switch (LoginDetails.staticfiscalyear)
                        {
                            case "xx":

                                break;
                            case "01":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "02":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "03":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "04":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "05":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "06":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "07":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "08":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "09":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "10":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "11":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            case "12":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                        }[/code]

I want 2  switch  line s

Regards

Olukay
Avatar of AndyAinscow
AndyAinscow
Flag of Switzerland image

How about

switch (LoginDetails.staticfiscalyear)
                        {
                            case "xx":

                                break;
                           default:
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
}


or use an if statement if there are only two choices.
ASKER CERTIFIED SOLUTION
Avatar of AndyAinscow
AndyAinscow
Flag of Switzerland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I agree with AndyAinscow. The if statement is enough. You don't need to use a switch. If you need to run different routines based on the months, then a switch statement would be fine to use. Seeing as you always want to run PayrollYearStartRoutine(), the if statement takes care of the condition where staticfiscalyear being equal to "xx".
switch (LoginDetails.staticfiscalyear)
                        {
                            case "xx":    break;
                            case "01":
                            case "02":
                            case "03":
                            case "04":
                            case "05":
                            case "06":
                            case "07":
                            case "08":
                            case "09":
                            case "10":
                            case "11":
                            case "12":
                                runstatus = proccesor.PayrollYearStartRoutine();  // Annual clear records
                                break;
                            default: break;
                        }

Open in new window


note: fall thru is (only) allowed if no statement is in the case section. otherwise you need break or goto

switch (condition)
{
        case "01": 
              goto case "02";
        case "02": 
              do_something(); 
              break;

Open in new window


Sara
Avatar of Olukayode Oluwole

ASKER

Thanks Much appreciated