The if
statement is used to control the flow of the program. An if
statement identifies which statement to run based on the value of a Boolean
expression.
For a single statement, the braces
{} are optional but recommended.
int a = 4;
if(a % 2 == 0)
{
Console.WriteLine("a contains an even number");
}
// output: "a contains an even number"
The if
can also have an else
clause, that will be executed in case the condition evaluates to false:
int a = 5;
if(a % 2 == 0)
{
Console.WriteLine("a contains an even number");
}
else
{
Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number"
The if
...else if
construct lets you specify multiple conditions:
int a = 9;
if(a % 2 == 0)
{
Console.WriteLine("a contains an even number");
}
else if(a % 3 == 0)
{
Console.WriteLine("a contains an odd number that is a multiple of 3");
}
else
{
Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number that is a multiple of 3"
C# Boolean expressions use short-circuit evaluation. This is important in cases where evaluating conditions may have side effects:
if (someBooleanMethodWithSideEffects() && someOtherBooleanMethodWithSideEffects()) {
//...
}
There's no guarantee that someOtherBooleanMethodWithSideEffects
will actually run.
It's also important in cases where earlier conditions ensure that it's "safe" to evaluate later ones. For example:
if (someCollection != null && someCollection.Count > 0) {
// ..
}
The order is very important in this case because, if we reverse the order:
if (someCollection.Count > 0 && someCollection != null) {
it will throw a NullReferenceException
if someCollection
is null
.