Renderingla

rumpe

Breaks out of the innermost loop.

Aliases: break

Syntax: rumpe

Category

transfer

Related

Examples

examples/corpus/rumpe/rumpe.fab (canonical · keyword)

Breaks out of the innermost loop.

# Break (rumpe) in loops
#
# rumpe   -- exit innermost dum/itera immediately
#
# GRAMMAR:
#   breakStmt :← 'rumpe'
#
# EXPECTED OUTPUT:
#   0–4 (stops before 5), then nested pairs until interior hits 2.

incipit {
    # Break when reaching 5
    varia _ i ← 0

    dum i < 10 {
        si i ≡ 5 {
            rumpe
        }
        nota i
        i ← i + 1
    }

    # Break in nested loop
    varia _ exterior ← 0

    dum exterior < 3 {
        varia _ interior ← 0

        dum interior < 10 {
            si interior ≡ 2 {
                rumpe
            }
            nota "exterior←§, interior←§"(exterior, interior)
            interior ← interior + 1
        }

        exterior ← exterior + 1
    }
}

Expected output:

0
1
2
3
4
exterior←0, interior←0
exterior←0, interior←1
exterior←1, interior←0
exterior←1, interior←1
exterior←2, interior←0
exterior←2, interior←1