C# Switch
C# Switch Statements
Use the switch statement to select one of many code blocks to be
executed.
Syntax
switch (expression)
{
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
break:
}
This is how it works:
• The switch expression is evaluated once
• The value of the expression is compared with the values of each case
• If there is a match, the associated block of code is executed
• The break and default keywords will
be described later in this chapter
The example below uses the weekday number to calculate the weekday name:
Example
int day = 4;
switch (day)
{
case 1:
Console .WriteLine(
"Monday");
break;
case 2:
Console .WriteLine(
"Tuesday");
break;
case 3:
Console .WriteLine(
"Wednesday");
break;
case 4:
Console .WriteLine(
"Thursday");
break;
case 5:
Console .WriteLine(
"Friday");
break;
case 6:
Console .WriteLine(
"Saturday");
break;
case 7:
Console .WriteLine(
"Sunday");
break;
}
// Outputs "Thursday" (day 4)
The break Keyword
When C# reaches a break keyword, it breaks out of the switch
block.
This will stop the execution of more code and case testing inside the block.
When a match is found, and the job is done, it's time for a break. There is no need for more
testing.
A break can save a lot of execution time because it "ignores" the execution of all the rest of the
code in the switch block.
The default Keyword
The default keyword is optional and specifies some code to run if there
is no case match:
Example
int day = 4;
switch (day)
{
case 6:
Console .WriteLine(
"Today is Saturday.");
break;
case 7:
Console .WriteLine(
"Today is Sunday.");
break;
default:
Console .WriteLine(
"Looking forward to the Weekend.");
break:
}
// Outputs "Looking forward to the Weekend."
C# While Loop
Loops
Loops can execute a block of code as long as a specified condition is reached.
Loops are handy because they save time, reduce errors, and they make code more readable.
C# While Loop
The while loop loops through a block of code as long as a specified
condition is True:
Syntax
while
(condition)
{
// code block to be executed
}
In the example below, the code in the loop will run, over and over again, as long as a variable (i) is
less than 5:
Example
int i = 0;
while
(i
< 5)
{
Console .WriteLine(i);
i++;
}
Note: Do not forget to increase the variable used in the condition, otherwise the loop will
never end!
The Do/While Loop
The do/while loop is a variant of the while loop. This loop will execute the code block once, before
checking if the condition is true, then it will repeat the loop as long as the condition is
true.
Syntax
do
{
// code block to be executed
}
while
(condition);
The example below uses a do/while loop. The loop will always be executed
at least once, even if the
condition is false, because the code block is executed before the condition is tested:
Example
int i = 0;
do
{
Console .WriteLine(i);
i++
}
while
(i
< 5);
Do not forget to increase the variable used in the condition, otherwise the loop will never
end!
C# For Loop
C# For Loop
When you know exactly how many times you want to loop through a block of code, use the for loop instead of
a while loop:
Syntax
for(statement1;
statement2; statement3;)
{
// code block to be executed
}
Statement 1 is executed (one time) before the execution of the code block.
Statement 2 defines the condition for executing the code block.
Statement 3 is executed (every time) after the code block has been executed.
The example below will print the numbers 0 to 4:
Example
for (int i = 0; i
< 5
; i++)
{
Console.WriteLine(i);
}
Example explained
Statement 1 sets a variable before the loop starts (int i =
0).
Statement 2 defines the condition for the loop to run (i must be less
than 5). If the condition is true,
the loop will start over again, if it is false, the loop will
end.
Statement 3 increases a value (i++) each time the code block in the loop
has been executed.
Another Example
This example will only print even values between 0 and 10:
Example
for (int i = 0; i
<= 10
; i = i
+2)
{
Console.WriteLine(i);
}
Nested Loops
It is also possible to place a loop inside another loop. This is called a nested
loop.
The "inner loop" will be executed one time for each iteration of the "outer loop":
Example
// Outer loop
for (int i = 1; i
<= 2
; i =
++i)
{
Console.WriteLine("Outer" + i); // Executes 2
times
// Inner loop
for (int j = 1; i
<= 3
; i =
j++)
{
Console.WriteLine("Inner" +
j); // Executes 6 times (2 * 3)
}
}
C# Break and Continue
C# Break
You have already seen the break statement used in an earlier chapter of
this tutorial. It was used to
"jump out" of a switch statement.
The break statement can also be used to jump out of a
loop.
This example jumps out of the loop when i is equal to 4:
Example
for (int i = 0; i
< 10
; i++
)
{
if
(i==4)
{
break;
}
Console.WriteLine(i);
}
C# Continue
The continue statement breaks one iteration (in the loop), if a
specified condition occurs, and continues
with the next iteration in the loop.
This example skips the value of 4:
Example
for (int i = 0; i
< 10
; i++
)
{
if
(i==4)
{
continue;
}
Console.WriteLine(i);
}
Break and Continue in While Loop
You can also use break and continue in
while loops:
Break Example
int i = 0;
while
(i
< 10)
{
Console.WriteLine(i);
i++;
if (i==4)
{
break;
}
}
Break Example
int i = 0;
while
(i
< 10)
{
if (i==4)
{
i++;
continue;
}
Console.WriteLine(i);
i++;
}
C# Arrays
Create an Array
Arrays are used to store multiple values in a single variable, instead of declaring separate variables for
each value.
To declare an array, define the variable type with square brackets:
string[]
cars;
We have now declared a variable that holds an array of strings.
To insert values to it, we can use an array literal - place the values in a comma-separated list, inside
curly braces:
string[]
cars={"Volvo","BMW","Ford","Mazda"};
To create an array of integers, you could write:
int[]
myNum={10, 20, 30, 40};
Access the Elements of an Array
You access an array element by referring to the index number.
This statement accesses the value of the first element in cars:
Example
string[]
cars={"Volvo","BMW","Ford","Mazda"};
Console.WriteLine(cars[0]);
// Outputs Volvo
Note: Array indexes start with 0: [0] is the first element. [1] is the second element,
etc.
Change an Array Element
To change the value of a specific element, refer to the index number:
cars[0]="Opel";
Example
string[]
cars={"Volvo","BMW","Ford","Mazda"};
cars[0]="Opel";
Console.WriteLine(cars[0]);
// Now outputs Opel instead of Volvo
Array Length
To find out how many elements an array has, use the Length
property:
Example
string[]
cars={"Volvo","BMW","Ford","Mazda"};
Console.WriteLine(cars.Length);
// Outputs 4
Other Ways to Create an Array
If you are familiar with C#, you might have seen arrays created with the new keyword, and perhaps you have
seen arrays with a specified size as well. In C#, there are different ways to create an
array:
// Create an array of four elements, and add values
later
string[]
cars =new
string [4];
// Create an array of four elements and add values right away
string[]
cars = new
string[4]{
"Volvo",
"BMW",
"Ford",
"Mazda",
};
// Create an array of four elements without specifying the
size
string[]
cars = new
string[] {
"Volvo",
"BMW",
"Ford",
"Mazda",
};
// Create an array of four elements, omitting the new keyword,
and without
specifying the
size
string[]
cars = {
"Volvo",
"BMW",
"Ford",
"Mazda",
};
It is up to you which option you choose. In our tutorial, we will often use the last option, as it is
faster and easier to read.
However, you should note that if you declare an array and initialize it later, you have to use the new
keyword:
// Declare an array
string[]
cars;
// Add values, using new
cars=new string[] {"Volvo","BMW","Ford"};
// Add values without using new (this will cause an
error)
cars={"Volvo","BMW","Ford"};
C# Loop Through Arrays
Loop Through an Array
You can loop through the array elements with the for loop, and use the
Length property to specify how many
times the loop should run.
The following example outputs all elements in the cars array:
Example
string[]
cars ={"Volvo","Volvo", "BMW", "Ford"}
for (i =
0; i
< cars.Length; i++)
{
Console.WriteLine(cars[i]);
}