Skip to main content

Swift If Else

Decision-making is a fundamental aspect of programming. In Swift, the if-else statement is one of the primary tools for implementing conditional logic, allowing your programs to make decisions based on certain conditions.

Introduction to Conditional Statements

In programming, we often need our code to behave differently depending on certain conditions. For example, an app might show different screens for logged-in versus anonymous users, or a game might adjust difficulty based on a player's score.

Swift's if-else statements let you execute different blocks of code based on conditions that evaluate to either true or false.

Basic If Statement Syntax

The simplest form of a conditional statement in Swift is the if statement:

swift
if condition {
// Code to execute when condition is true
}

The condition must evaluate to a Boolean value (true or false). If the condition is true, Swift executes the code inside the braces. If the condition is false, Swift skips that code block.

Example: Simple If Statement

swift
let temperature = 25

if temperature > 20 {
print("It's a warm day!")
}

Output:

It's a warm day!

In this example, since 25 is greater than 20, the condition evaluates to true, and the message is printed.

If-Else Statement

To provide an alternative set of code to execute when the condition is false, we use the else clause:

swift
if condition {
// Code to execute when condition is true
} else {
// Code to execute when condition is false
}

Example: If-Else Statement

swift
let temperature = 15

if temperature > 20 {
print("It's a warm day!")
} else {
print("It's not that warm today.")
}

Output:

It's not that warm today.

Since the temperature is 15, which is not greater than 20, the condition evaluates to false, and the code in the else block is executed.

Multiple Conditions with Else If

For situations where you need to check multiple conditions, Swift provides the else if clause:

swift
if condition1 {
// Code to execute when condition1 is true
} else if condition2 {
// Code to execute when condition1 is false but condition2 is true
} else {
// Code to execute when both conditions are false
}

Swift evaluates conditions in order, from top to bottom. As soon as a condition evaluates to true, its corresponding code block executes, and the rest are skipped.

Example: Else If Statement

swift
let temperature = 15

if temperature > 25 {
print("It's a hot day!")
} else if temperature > 20 {
print("It's a warm day!")
} else if temperature > 10 {
print("It's a mild day.")
} else {
print("It's a cold day.")
}

Output:

It's a mild day.

In this example:

  • First, Swift checks if temperature > 25, which is false
  • Next, it checks if temperature > 20, which is also false
  • Then, it checks if temperature > 10, which is true (15 > 10)
  • The message "It's a mild day." is printed, and the final else is skipped

Nested If Statements

You can place an if statement inside another if or else block, creating what's called a "nested" if statement:

swift
if outerCondition {
// Code when outerCondition is true

if innerCondition {
// Code when both conditions are true
} else {
// Code when outerCondition is true but innerCondition is false
}
} else {
// Code when outerCondition is false
}

Example: Nested If Statement

swift
let temperature = 25
let isRaining = false

if temperature > 20 {
print("It's warm outside.")

if isRaining {
print("But remember to take an umbrella!")
} else {
print("Enjoy the nice weather!")
}
} else {
print("It's not very warm today.")
}

Output:

It's warm outside.
Enjoy the nice weather!

Using Logical Operators in Conditions

Swift provides logical operators to combine conditions:

  • && (AND): Both conditions must be true
  • || (OR): At least one condition must be true
  • ! (NOT): Inverts a Boolean value

Example: Logical Operators

swift
let temperature = 25
let isRaining = false

if temperature > 20 && !isRaining {
print("Perfect day for outdoor activities!")
} else if temperature > 20 || !isRaining {
print("It's either warm or not raining (or both).")
} else {
print("It's cold and raining. Better stay inside.")
}

Output:

Perfect day for outdoor activities!

Ternary Conditional Operator

Swift offers a shorthand for simple if-else statements called the ternary conditional operator:

swift
condition ? valueIfTrue : valueIfFalse

Example: Ternary Operator

swift
let temperature = 25
let weatherDescription = temperature > 20 ? "warm" : "cold"
print("It's \(weatherDescription) today.")

Output:

It's warm today.

This concise syntax is particularly useful for simple conditional assignments.

Real-World Applications

User Authentication

swift
let username = "swift_user"
let password = "password123"
let enteredUsername = "swift_user"
let enteredPassword = "wrong_password"

if username == enteredUsername && password == enteredPassword {
print("Login successful!")
} else if username == enteredUsername {
print("Incorrect password. Please try again.")
} else {
print("User not found. Please register.")
}

Output:

Incorrect password. Please try again.

Form Validation

swift
let email = "[email protected]"
let hasAtSymbol = email.contains("@")
let hasDotSymbol = email.contains(".")
let isValidLength = email.count >= 5

if hasAtSymbol && hasDotSymbol && isValidLength {
print("Email format appears valid.")
} else {
print("Invalid email format.")

if !hasAtSymbol {
print("Email must contain an @ symbol.")
}

if !hasDotSymbol {
print("Email must contain a period.")
}

if !isValidLength {
print("Email must be at least 5 characters long.")
}
}

Output:

Email format appears valid.

Game Logic

swift
let playerScore = 850
let highScore = 1000

if playerScore >= highScore {
print("New high score achieved!")
print("Previous record beaten by \(playerScore - highScore) points.")
} else if playerScore >= highScore * 0.8 {
print("Almost there! You're within \(highScore - playerScore) points of the high score.")
} else if playerScore >= highScore * 0.5 {
print("Good effort! You're getting better.")
} else {
print("Keep practicing to improve your score.")
}

Output:

Almost there! You're within 150 points of the high score.

Best Practices for If-Else Statements

  1. Keep conditions simple: Complex conditions can be hard to understand. Consider breaking them down or using intermediate variables with descriptive names.

  2. Be mindful of order: When using else if chains, order matters. Put more specific or common cases first for better readability and efficiency.

  3. Avoid nested if statements when possible: Deeply nested if statements can make code hard to follow. Consider refactoring with early returns or guard statements.

  4. Use consistent brace style: Swift's standard is to place opening braces on the same line as the condition.

Summary

In this guide, we've learned how to use Swift's if-else statements to make decisions in our code:

  • Basic if statements execute code conditionally
  • if-else statements provide an alternative when conditions aren't met
  • else if allows checking multiple conditions in sequence
  • Nested if statements allow for more complex decision trees
  • Logical operators (&&, ||, !) can combine conditions
  • The ternary operator provides a concise alternative for simple cases

The ability to make decisions is what makes programs dynamic and interactive. With if-else statements, your Swift code can respond to different situations intelligently.

Exercises

  1. Write a function that determines if a given year is a leap year. (Hint: A year is a leap year if it's divisible by 4, except for century years which must be divisible by 400.)

  2. Create a BMI calculator that provides different messages based on the calculated BMI value.

  3. Implement a simple grade calculator that converts numerical scores (0-100) to letter grades (A, B, C, D, F).

  4. Write a program that determines if a triangle is equilateral, isosceles, or scalene based on the lengths of its sides.

Additional Resources



If you spot any mistakes on this website, please let me know at [email protected]. I’d greatly appreciate your feedback! :)