The break statement can appear only in the body of an iteration statement or code attached to a switch statement. It transfers control to the statement immediately following the smallest enclosing iteration or switch statement, terminating its execution. Statement A function returns to its caller by means of the return statement. The return statement cannot have an expression if the type of the current function is void . If the value of the function call expression is used when none is returned, the behavior is undefined.
Any statement can have a label attached as a simple identifier.
The scope of such a label is the current function. Thus, labels must be unique within a function. In traditional C, identifiers used as labels and in object declarations share a name space. Thus, use of an identifier as a label hides any declaration of that identifier in an enclosing scope. In ANSI C, identifiers used as labels are placed in a different name space from all other identifiers and do not conflict.