- if/else
- Ternary Operator
- Nested ifs
- else if
- Bronze Challenge
Nested ifs
You can nest if statements for scenarios with more than two possibilities. You do this by writing an if/else statement inside the curly braces of another if/else statement. To see this, nest an if/else statement within the else block of your existing if/else statement.
Listing 3.5 Nesting conditionals
import Cocoa var population: Int = 5422 var message: String var hasPostOffice: Bool = true if population < 10000 { message = "\(population) is a small town!" } else { if population >= 10000 && population < 50000 { message = "\(population) is a medium town!" } else { message = "\(population) is pretty big!" } } print(message) if !hasPostOffice { print("Where do we buy stamps?") }
Your nested if clause makes use of the >= comparator (comparison operator) and the && logical operator to check whether population is within the range of 10,000 to 50,000. Because your town’s population does not fall within that range, your message is set to “5422 is a small town!” as before.
Try bumping up the population to exercise the other branches.
Nested if/else statements are common in programming. You will find them out in the wild, and you will be writing them as well. There is no limit to how deeply you can nest these statements. However, the danger of nesting them too deeply is that it makes the code harder to read. One or two levels are fine, but beyond that your code becomes less readable and maintainable.
There are ways to avoid nested statements. Next, you are going to refactor the code that you have just written to make it a little easier to follow. Refactoring means changing code so that it does the same work but in a different way. It may be more efficient, or may just look prettier or be easier to understand.