[stmt.jump.general]

# 8 Statements [[stmt]](./#stmt)

## 8.8 Jump statements [[stmt.jump]](stmt.jump#general)

### 8.8.1 General [stmt.jump.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/statements.tex#L988)

Jump statements unconditionally transfer control[.](#1.sentence-1)

[jump-statement:](#nt:jump-statement "8.8.1 General [stmt.jump.general]")  
break ;  
continue ;  
return [*expr-or-braced-init-list*](dcl.init.general#nt:expr-or-braced-init-list "9.5.1 General [dcl.init.general]")opt ;  
[*coroutine-return-statement*](stmt.return.coroutine#nt:coroutine-return-statement "8.8.5 The co_­return statement [stmt.return.coroutine]")  
goto [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") ;

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/statements.tex#L1007)

[*Note [1](#note-1)*:

On exit from a scope (however accomplished), objects with [automatic storage
duration](basic.stc.auto "6.8.6.4 Automatic storage duration [basic.stc.auto]") that have been constructed in that scope are destroyed
in the reverse order of their construction ([[stmt.dcl]](stmt.dcl "8.10 Declaration statement"))[.](#2.sentence-1)

For temporaries, see [[class.temporary]](class.temporary "6.8.7 Temporary objects")[.](#2.sentence-2)

However, the program can be terminated (by callingstd​::​exit() orstd​::​abort() ([[support.start.term]](support.start.term "17.5 Startup and termination")), for example) without
destroying objects with automatic storage duration[.](#2.sentence-3)

â *end note*]

[*Note [2](#note-2)*:

A suspension of a coroutine ([[expr.await]](expr.await "7.6.2.4 Await")) is not considered to be an exit from a scope[.](#2.sentence-4)

â *end note*]
