How to avoid “if” chains?
Предполагая, что у меня есть этот псевдокод:
bool conditionA = executeStepA();
if (conditionA){
bool conditionB = executeStepB();
if (conditionB){
bool conditionC = executeStepC();
if (conditionC){
...
}
}
}
executeThisFunctionInAnyCase();
функцииexecuteStepX
должен быть выполнен тогда и только тогда, когда предыдущий будет успешным В любом случаеexecuteThisFunctionInAnyCase
Функция должна быть вызвана в конце. Я новичок в программировании, так что извините за очень простой вопрос: есть ли способ (в C / C ++, например), чтобы избежать этого долгоif
цепочка, производящая подобную «пирамиду кода», за счет разборчивости кода?
Я знаю, что если бы мы могли пропуститьexecuteThisFunctionInAnyCase
вызов функции, код может быть упрощен как:
bool conditionA = executeStepA();
if (!conditionA) return;
bool conditionB = executeStepB();
if (!conditionB) return;
bool conditionC = executeStepC();
if (!conditionC) return;
Но ограничение являетсяexecuteThisFunctionInAnyCase
вызов функции. Может лиbreak
заявление будет использовано каким-то образом?