В структуре блока if, такой как ниже, предположим, что условие_1 и условие_2 являются взаимоисключающими, но бывают ситуации, когда условие_2 и более поздние условия могут быть истинными; и, когда условие_2 истинно, все, что нужно, - это выйти из блока if и продолжить с остальным кодом, аналогично оператору switch.
Все условия, кроме condition_2, являются matches
операторами для слушателя в родительском контейнере с несколькими кнопками. Когда условие_2 истинно, кнопки под ним должны быть отключены.
if ( condition_1 ) { }
else if ( condition_2 ) { }
else if ( condition_3 ) { }
else if ( condition_4 ) { }
// ...
else if ( condition_n ) { };
// More code in the function before returning.
Это может быть закодировано как:
if ( condition_1 ) { }
else if ( !condition_2 && condition_3 ) { }
else if ( !condition_2 && condition_4 ) { }
// ...
else if ( !condition_2 && condition_n ) { };
// More code in the function before returning.
или
if ( condition_1 ) { }
else if ( !condition_2 )
{
if ( condition_3 ) { }
else if ( condition_4 ) { }
// ...
else if ( condition_n ) { };
};
// More code in the function before returning.
Было бы "плохой" практикой программирования просто кодировать, как в первом блоке, и просто не помещать код между фигурными скобками для condition_2, чтобы при условии, что condition_2 имеет значение true, нет кода для выполнения, но другие условия не проверяются и он берет код в конце блока if?
Есть ли лучший, более профессиональный способ сделать то же самое?
Я читал о том, как поместить label
в оператор if, а затем использовать break label
, но я не вижу, что это добавляет; и было упомянуто, что этот метод не может быть эффективно использован компилятором / интерпретатором.
Спасибо.