I started out with the following, simple routine: void originalCode(){ boolean status = getStatus(); function2(status); if(status){ return; } function3(); } But then, additional functionality required calling function1 on the status == true path. It was also important to call function1 before function2. The results were one of the two following monstrosities: void alternative1(){ boolean statusRead more