C# provides a variety of statements. [Note: Most of these statements will be familiar to developers who have programmed in C and C++. end note] statement : labeled-statementdeclaration-statementembedded-statementembedded-statement : blockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statement The embedded-statement nonterminal is used for statements that appear within other statements. The use of embedded-statement rather than statement excludes the use of declaration statements and labeled statements in these contexts. [Example: The code results in a compile-time error because an if statement requires an embedded-statement rather than a statement for its if branch. If this code were permitted, then the variable i would be declared, but it could never be used. (Note, however, that by placing i's declaration in a block, the example is valid.) end example]