C# - Conditional Statements and Logic
Tags: codenewbie, tutorial, csharp, programming
Published: 2021-07-20 21:19:05

## Conditional Statements and Logic

### If this..do this

When programming there will always be a case when you only want to do something, if certain conditions are met. This can be acccomplished in a couple of ways, lets take a look:


## If Statement

The easiest way of checking conditions is utilising the **If** statement.  If statements control the code execution flow. When it's compiled into native machine code, it will evaluate the condition and make a conditional jump. Is the “if” statement considered a method? No, even though to some, it may look like one, it is not a method. **If** is a reserved work in the C# language, which means it will always be treat as such. 

Think of IF statement expressions is like stating a condition that has to be met.

Variable | Condition | Outcome
---------|----------|---------
my age | greater than or equal to 18 | Legal to Drink Alcohol

How would this be written in code?
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gsg88lsep87fsqg98u38.png)

Lets deconstruct an if statement:

First you utilise the **If** reserved word, then open and close brackets, entering a condition expression inside, end with parenthesis , with the code you wish to run upon the condition being met.


## Condiitonal Operators & Building Expressions

In order to write an expression for an If statement, you need to understand the conditional operators. These are:


Condition | Operator | Description
---------|----------|---------
 Equals | == | Checks if the left hand part of the expression is equal to the right
 Not Equals | != | Checks if the left hand part of the expression is not equal to the right
 Greater Than | > | Checks if the left hand part of the expression is greater than the right
 Less Than | < | Checks if the left hand part of the expression is less than the right
 Modulus  | % | Returns if there is a remainder left after division
 Greater Than Or Equal To | >= | Checks if the left hand part of the expression is greater than or equal to the right
 Less Than Or Equal To | <= | Checks if the left hand part of the expression is less than or equal to the right
 
Lets see some examples of these being used...

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6l5on32zqermwxw63dyt.png)

## Joining conditions

What do you do though if you want to join conditions? You can utilise logical operators, to join expressions.

Logical Condition | Operator | Description
---------|----------|---------
 Logical AND | "&" | Checks both the left and right sides of the expression are both true, will ALWAYS check both sides - sometimes can less productive
 Conditional AND | "&&" | Only checks the right side of expression if the left is true. Otherwise it short-circuits to false, more efficient in most cases
 OR | &#x7c;&#x7c; | Checks if either of the sides of the expression are true

It might be looking at some common usage examples of these operators:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kizj61h44jnfohqekmd6.png)

Here are some examples of how we could use the most common operators. We've joined multiple conditions using a variety of operators.

###If / Else Statements

What if though, you want to do want the code only do something if a condition is met. What If you want to do something in one scenario but every other time do something else. 

You can use the If / Else statement like so:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6d9nrzoriz7krwg5fihs.png)

So if the condition is not met the else statement code will be executed. As you can see, you don't have to pass a full expression within the "If" statement. You can also pass a boolean value, and it will by default assess if the value is true. If you would like to check if the value is **false** you can prepend the value name name with **!** operator. Which is the negate operator. It works in the same way as the " **!=** " operator, however its a shorthand version for boolean values, like this "poor" example haha:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4q0vm4a5phrgnxjqcdvw.png)

We can also chain other if statements off of one another using an **else if**, chain like so:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sn8gvjimzfyoalew8mfd.png)

This will check the first condition, if that's not met, it will cascade to the next else if statement, if that isn't met it will fall to the else code. 

The else code will always be executed if none of the conditions are met.

Sometimes though multiple if / else if / else statements can get messy but there is a solution.

This will be discussed in the next part of the series "Conditional Statements Continued - Switch / Case"