#9875·csharplang

[Proposal]: Labeled `break` and `continue` Statements (VS 18.8, .NET 11)

Author: CyrusNajmabadiCreated Dec 14, 2025Updated Aug 12, 2026
LabelsProposal championImplemented Needs ECMA Spec

Labeled break and continue Statements

Summary

Allow break and continue statements to optionally specify a label that identifies which loop or switch statement to target, enabling cleaner control flow in nested constructs without requiring goto statements.

For example:

csharp

```csharp
outer: for (int x = 0; x < xMax; x++)
{
    for (int y = 0; y < yMax; y++)
    {
        if (ShouldSkipRest(x, y))
            continue outer;
        
        if (ShouldExitAll(x, y))
            break outer;
    }
}

Design meetings