Если у вас есть кодовый блок с именем, вы можете использовать break для выхода из него, то есть использование, которое я нашел для именования блоков.
name: if(true) {
// do something
if(/* condition */) {
break name;
}
// do more
}
он также работает без if:
name: {
// do something
if(/* condition */) {
break name;
}
// do more
}
Это встречается в моей работе, когда в некоторой логике есть набор защитных условий, а также другой набор логики, на который будут влиять независимо от результата охраны.
Еще один пример, где альтернативные структуры труднее читать и изменять:
block: if(/* guard */) {
// prep work
if(/* guard */) {
break block;
}
// prep work
if(/* guard */) {
break block;
}
// real work
}
, хотя обычно я использую пустой блок, а не if.