# Use the PowerShell If Statement and PowerShell Switch Statement

When it comes to making decisions and branching logic in our PowerShell scripts, we commonly use the PowerShell If statement and PowerShell Switch statement.

## The PowerShell If Statement

The `If` statement is a fundamental control structure in almost every programming language, and PowerShell is no exception. It allows us to execute a block of code based on a condition. Here’s the basic syntax of an `If` statement in PowerShell:

``````if (condition) {
# Code to execute if the condition is true
}``````

Here’s an example of using an `If` statement to check if a number is greater than 10:

``````\$number = 15
if (\$number -gt 10) {
Write-Host "The number is greater than 10."
}``````

In this example, the code within the curly braces will be executed because the condition `\$number -gt 10` is true.

### Common Logical Operators

When working with `If` statements, we can use common logical operators to create conditions. Here are some of the most commonly used logical operators:

• Equality ( `-eq` ): Checks if two values are equal.
• Inequality ( `-ne` ): Checks if two values are not equal.
• Greater Than ( `-gt` ) and Less Than ( `-lt` ): Checks if one value is greater than or less than another value.
• Greater Than or Equal To ( `-ge` ) and Less Than or Equal To ( `-le` ): Checks if one value is greater than or equal to or less than or equal to another value.
• Logical AND ( `-and` ): Checks if multiple conditions are true.
• Logical OR ( `-or` ): Checks if at least one of multiple conditions is true.
• Logical NOT ( `-not` ) or Negation ( `!` ): Reverses the logical value of a condition.

We can combine these logical operators to create complex conditions for our `If` statements, allowing us to make decisions based on multiple factors and criteria in our PowerShell scripts. For example:

``````\$number = 15
if (\$number -gt 10 -and \$number -lt 20) {
Write-Host "The number is greater than 10."
}``````

## The PowerShell Switch Statement

The `Switch` statement is a powerful tool for handling multiple conditions in a concise manner. It’s especially useful when we need to perform different actions based on the value of a variable. The `Switch` statement can be more readable than a series of nested `If` statements.

Here’s the basic syntax of a `Switch` statement in PowerShell:

``````switch (expression) {
value1 { # Code to execute if expression matches value1 }
value2 { # Code to execute if expression matches value2 }
default { # Code to execute if no match is found }
}``````

Here’s an example of using a `Switch` statement to categorize fruit based on its colour:

``````\$fruit = "apple"
switch (\$fruit) {
"banana" {
Write-Host "This is a yellow fruit."
}
"apple" {
Write-Host "This is a red fruit."
}
default {
Write-Host "Unknown fruit."
}
}``````

In this example, the code within the block corresponding to the value “apple” is executed because `\$fruit` matches “apple.”

The If statement and Switch statement are essential for making decisions in our scripts and can be used in a wide range of scenarios.