Annex A (informative) Grammar summary [gram]

A.5 Statements [gram.stmt]

statement:
    labeled-statement
    attribute-specifier-seqopt expression-statement
    attribute-specifier-seqopt compound-statement
    attribute-specifier-seqopt selection-statement
    attribute-specifier-seqopt iteration-statement
    attribute-specifier-seqopt jump-statement
    declaration-statement
    attribute-specifier-seqopt try-block
labeled-statement:
    attribute-specifier-seqopt identifier : statement
    attribute-specifier-seqopt case constant-expression : statement
    attribute-specifier-seqopt default : statement
expression-statement:
    expressionopt ;
compound-statement:
    { statement-seqopt }
statement-seq:
    statement
    statement-seq statement
selection-statement:
    if ( condition ) statement
    if ( condition ) statement else statement
    switch ( condition ) statement
condition:
    expression
    attribute-specifier-seqopt decl-specifier-seq declarator = initializer-clause
    attribute-specifier-seqopt decl-specifier-seq declarator braced-init-list
iteration-statement:
    while ( condition ) statement
    do statement while ( expression ) ;
    for ( for-init-statement conditionopt ; expressionopt ) statement
    for ( for-range-declaration : for-range-initializer ) statement
for-init-statement:
    expression-statement
    simple-declaration
for-range-declaration:
    attribute-specifier-seqopt decl-specifier-seq declarator
for-range-initializer:
    expression
    braced-init-list
jump-statement:
    break ;
    continue ;
    return expressionopt ;
    return braced-init-list ;
    goto identifier ;
declaration-statement:
    block-declaration