C Sharp Programming/Control

Conditional, iteration, jump, and exception handling statements control a program's flow of execution.

A conditional statement can decide something using keywords such as,.

An iteration statement can create a loop using keywords such as, , , , and.

A jump statement can be used to transfer program control using keywords such as, , , and.

Conditional statements
A conditional statement decides whether to execute code based on conditions. The statement and the  statement are the two types of conditional statements in C#.

statement
As with most of C#, the statement has the same syntax as in C, C++, and Java. Thus, it is written in the following form:

The statement evaluates its condition expression to determine whether to execute the if-body. Optionally, an clause can immediately follow the if body, providing code to execute when the condition is false. Making the else-body another statement creates the common cascade of, , , ,  statements:

statement
The statement is similar to the statement from C, C++ and Java.

Unlike C, each statement must finish with a jump statement (that can be  or  or ). In other words, C# does not support "fall through" from one statement to the next (thereby eliminating a common source of unexpected behaviour in C programs). However "stacking" of cases is allowed, as in the example below. If is used, it may refer to a case label or the default case (e.g.  or ).

The label is optional. If no default case is defined, then the default behaviour is to do nothing.

A simple example:

A nice improvement over the C switch statement is that the switch variable can be a string. For example:

Iteration statements
An iteration statement creates a loop of code to execute a variable number of times. The loop, the  loop, the  loop, and the  loop are the iteration statements in C#.

loop
The loop likewise has the same syntax as in other languages derived from C. It is written in the following form:
 * do...while-loop ::= "do" body "while" "(" condition ")"
 * condition ::= boolean-expression
 * body ::= statement-or-statement-block

The loop always runs its body once. After its first run, it evaluates its condition to determine whether to run its body again. If the condition is true, the body executes. If the condition evaluates to true again after the body has run, the body executes again. When the condition evaluates to false, the loop ends.

The above code writes the integers from 0 to 10 to the console.

loop
The loop likewise has the same syntax as in other languages derived from C. It is written in the following form:
 * for-loop ::= "for" "(" initialization ";" condition ";" iteration ")" body
 * initialization ::= variable-declaration | list-of-statements
 * condition ::= boolean-expression
 * iteration ::= list-of-statements
 * body ::= statement-or-statement-block

The initialization variable declaration or statements are executed the first time through the loop, typically to declare and initialize an index variable. The condition expression is evaluated before each pass through the body to determine whether to execute the body. It is often used to test an index variable against some limit. If the condition evaluates to true, the body is executed. The iteration statements are executed after each pass through the body, typically to increment or decrement an index variable.

The above code writes the integers from 0 to 99 to the console.

loop
The statement is similar to the  statement in that both allow code to iterate over the items of collections, but the  statement lacks an iteration index, so it works even with collections that lack indices altogether. It is written in the following form:
 * foreach-loop ::= "foreach" "(" variable-declaration "in" enumerable-expression ")" body
 * body ::= statement-or-statement-block

The enumerable-expression is an expression of a type that implements, so it can be an array or a collection. The variable-declaration declares a variable that will be set to the successive elements of the enumerable-expression for each pass through the body. The loop exits when there are no more elements of the enumerable-expression to assign to the variable of the variable-declaration.

In the above code, the statement iterates over the elements of the string array to write "Alpha", "Bravo", and "Charlie" to the console.

loop
The loop has the same syntax as in other languages derived from C. It is written in the following form:
 * while-loop ::= "while" "(" condition ")" body
 * condition ::= boolean-expression
 * body ::= statement-or-statement-block

The loop evaluates its condition to determine whether to run its body. If the condition is true, the body executes. If the condition then evaluates to true again, the body executes again. When the condition evaluates to false, the loop ends.

Jump statements
A jump statement can be used to transfer program control using keywords such as, , , , and.

A break statement is used to exit from a case in a switch statement and also used to exit from for, foreach, while, do .. while loops that will switch the control to the statement immediately after the end of the loop.

The keyword transfers program control just before the end of a loop. The condition for the loop is then checked, and if it is met, the loop performs another iteration.

The keyword identifies the return value for the function or method (if any), and transfers control to the end of the function.

The keyword is used to define an iterator block that produces values for an enumerator. It is typically used within a method implementation of the interface as an easy way to create an iterator. It is written in the following forms:
 * yield ::= "yield" "return" expression
 * yield ::= "yield" "break"

The following example shows the usage of the yield keyword inside the method. This method defines an iterator block, and will return an enumerator object that generates the value of a counter from zero to, incrementing by for each value generated.

The keyword throws an exception. If it is located within a try block, it will transfer the control to a catch block that matches the exception - otherwise, it will check if any calling functions are contained within the matching catch block and transfer execution there. If no functions contain a catch block, the program may terminate because of an unhandled exception.

Exceptions and the throw statement are described in greater detail in the Exceptions chapter.

C 샤프 프로그래밍/제어문