Conteúdo do Curso
C# Basics
C# Basics
if-else Chain
We can add additional conditions using the else if
keyword. The additional conditions are evaluated in case the previous conditions are not met.
For example:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else if(value_1 == value_2) { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
In the above program we chained conditions using if-else if. This is called Conditional Chaining. The first condition value_1 < value_2
is evaluated. Since it is false
, the program skips to the next condition value_1 > value_2
which is true
and hence it executes its code block and stops executing the chain further.
The main feature of Conditional Chaining is that it stops executing the chain as soon as a condition is met.
Consider the following code:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } else if(value > 7) { Console.WriteLine("Value is bigger than 7"); } else if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }
Even though all three conditions are true
, it stops executing on the first condition since it's a chain.
Now let's try writing it using simple if
keywords without chaining:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } if(value > 7) { Console.WriteLine("Value is bigger than 7"); } if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }
In the above case, each condition is evaluated individually and not treated as a part of any chain hence all three statements are outputted.
We can also add the else
keyword at the end of the if-else
chain which will execute if no condition is matched:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
Obrigado pelo seu feedback!