O'Reilly logo

iOS 12 Programming Fundamentals with Swift by Matt Neuburg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 5. Flow Control and More

This chapter is a miscellany, presenting various remaining aspects of the Swift language. I’ll start by describing the syntax of Swift’s flow control constructs for branching, looping, and jumping. Then I’ll summarize Swift’s privacy and introspection features, and talk about how to override operators and how to create your own operators. Next I’ll discuss some recently added Swift language features: synthesized protocol implementations, key paths, and dynamic members. Finally, I’ll explain some specialized aspects of Swift memory management.

Flow Control

A computer program has a path of execution through its code statements. Normally, this path follows a simple rule: execute each statement in succession. But there is another possibility. Flow control can be used to make the path of execution skip some code statements, or go back and repeat some code statements. Flow control is what makes a computer program “intelligent.” By testing the truth value of a condition — an expression that evaluates to a Bool and is thus true or false — the program decides at that moment how to proceed. Flow control based on testing a condition may be divided into two general types:

Branching

The code is divided into alternative chunks, like roads that diverge in a wood, and the program is presented with a choice of possible ways to go; the truth of a condition is used to determine which chunk will actually be executed.

Looping

A chunk of code is marked off for ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required