I know it's not common to use goto statement. However, I don't know if it's necessary to replace it for something else here.
This pseudocode is kind of a state machine were depending on some conditions I need to be able to "jump" to a certain point. This code is called whenever a bit is received via serial communication.
switch (Actual_state)
{
case "FirstState":
if(restriction)goto case "FourthState";
//state code
Actual_state = Next_state;
break;
case "SecondState":
//state code
Actual_state = Next_state;
break;
case "ThirdState":
//state code
Actual_state = Next_state;
break;
case "FourthState":
//state code
Actual_state = Next_state;
break;
case "FifthState":
//state code
goto case "SixthState"; //if the statement code is complete I need it to go directly to next state, else it would overwrite some info and I don't want more variables. make any suggestion you want.
break;
case "SixthState":
//state code
Actual_state = Next_state;
break;
case "LastState":
Actual_state = "FirtState";
break;
}
Everything is working fine, but I want some opinions on this workflow. If it's garbage feel free to say so.